一、抽象类
1.抽象类的由来      2.几点注意     3.语法规则
二、接口
1.定义方式      2.属性和方法
三、总结

一、抽象类

1.抽象类的由来

“用进废退”,多态的领域下,重写的方法被子类覆盖,不可能被调用到,索性去掉方法体,声明为抽象方法。

2.几点注意

  • 抽象方法没有方法体
  • 含有抽象方法的类必须是抽象类,但抽象类里可以暂时没有抽象方法
  • 抽象类的子类有两种选择:1.完全实现父类的抽象方法 2.自己也声明为抽象类

3.语法规则

  • 抽象类有构造方法,但不能被显示调用(隐式可以),也就不能实例化,也就没有对象。
  • 抽象类的使用一般是作为引用类型,指向非抽象的引用的实例,体现出多态。
  • 构造方法和静态方法都不能用(abstract)抽象修饰。

二、接口

1.定义方式

public interface 接口名{ }

接口类和定义类的区别在于,将class关键字换成了interface。

2.属性和方法

  1. 所有的成员属性都是 public static final (公共静态常量)类型
  2. 所有的方法都是 public abstract (公共抽象方法)

接口中只有抽象方法,没有构造方法和静态方法

三、总结

抽象度:接口>抽象类>类>对象

小汤学编程之JAVA基础day08——面向对象(三):抽象类与接口相关推荐

  1. 小汤学编程之JAVA基础day07——面向对象(二):封装、继承与多态

    一.封装 1.使用步骤      2.优点     3.包结构     4.访问修饰符 二.继承 1.理解      2.重写     3.final的详解     4.防止被继承的两种方法 三.多态 ...

  2. 小汤学编程之JAVA基础day06——面向对象(一):类与对象

    一.类 1.类的属性      2.类的方法     3.类的分类     4.类的创建     5.扩展:成员变量和局部变量 二.对象 1.对象的创建      2.对象的使用 一.类 类就是一类事 ...

  3. 小汤学编程之JAVA基础day12——异常

    一.什么是异常 1.程序错误类型     2.异常的分类     3.深入认识异常 二.异常的继承结构 三.常见的异常收集 四.虚拟机对异常的两种处理方式 1.捕获异常     2.声明和抛出异常 五 ...

  4. 小汤学编程之JAVA基础day05——数组

    一.概念 1.什么是数组      2.为什么要用到数组 二.使用方法 1.声明并分配空间      2.赋值     3.处理数据 三.数组的各种应用 1.求数组中最大/最小值      2.数组反 ...

  5. 小汤学编程之JAVA基础day04——流程结构

    一.认识流程图 二.顺序结构 三.选择结构 四.循环结构 五.扩展&代码块的概念 一.认识流程图 二.顺序结构 体现在程序进入某个方法后,从上到下没有分支的顺序执行. 三.选择结构 1.if选 ...

  6. 小汤学编程之JAVA基础day02——数据类型、Scanner类的使用

    一.JAVA的数据类型 1.变量      2.常量     3.基本数据类型     4.引用数据类型     5.数据类型转换 二.Scanner类的使用 1.作用      2.引入     3 ...

  7. 小汤学编程之JAVA基础day15——枚举、注解和Properties

    一.枚举 1.枚举的来由     2.枚举的作用     3.枚举的特点     4.扩展:switch里可以传入哪些类型的值 二.注解 1.作用     2.注解的种类     3.自定义注解    ...

  8. 小汤学编程之JAVA基础day14——xml和反射

    一.xml 1.简介     2.特点     3.使用步骤 二.Reflect反射 1.概念     2.理解Class类     3.反射的功能     4.两个案例 一.xml 1.简介 xml ...

  9. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

最新文章

  1. 伟大公司为什么都考核价值观?
  2. linux c语言显示器api,API级别的Unicode GUI用于Windows / Linux / Mac的C语言本机应用程序...
  3. go/golang init()方法的调用
  4. 解决 C3P0 中文乱码问题
  5. java 百亿计算器_设计一个一百亿的计算器
  6. elementui 搭建布局页面路由_【项目实践】使用Vue.js和ElementUI快速实现后台管理系统的界面布局...
  7. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  8. linux主机查看CPU核数和主机型号
  9. 最强白嫖指南---推荐11个珍藏多年的网站!
  10. HEVC代码学习0:HM使用+码流分析教程
  11. BGP 路径属性 (Path attribute)
  12. 百度提升关键词排名优化软件,百度点击器,百度排名软件,百度竞价助手
  13. Spring注解汇总
  14. 华为的“少年天才”攀登者,出发向智能存储的“奥林帕斯山”
  15. 数胎动可辨别宝宝是不是缺氧
  16. MySql定期备份数据到历史表的解决方案
  17. 谷歌Chrome浏览器的翻译按钮不见了
  18. 高分屏笔记本显示模糊解决方法
  19. 利用labelme生成Mask
  20. 27计算机表演赛命题,(历史2)27届计算机表演赛命题搜索赛答案

热门文章

  1. jeesite中activiti中的流程表梳理
  2. 记一次尴尬的git reset丢失分支故障
  3. zabbix邮件内容乱码与邮件内容为附件解决办法
  4. layui流加载及传参
  5. eclipse工具栏sdk和avd图标
  6. AOP和IOC个人理解
  7. 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
  8. CVPR 2020丨基于范例的精细可控图像翻译CoCosNet,一键生成你心目中的图像
  9. MIT 深度学习导论来啦!附视频下载
  10. GridMask:SOTA 数据增广方法,显著改进分类、检测、分割效果