接口
我们写一个接口,写一个继承接口的实现类,再写一个主函数的那个
public对应的是private呀protected呀
static对应的是default
建立时候别选class选接口interface
接口定义格式
接口中的抽象方法
方法三要素没有要求随意定义
(方法名,参数列表,返回值)
抽象方法都有大括号没有方法体
接口使用方法
不能直接使用
alt➕回车覆盖重写快捷键
Java8开始可以有默认方法
接口升级就是要新添方法时添default
默认方法,这样就不都要覆盖重写了省事
default不能省略 必须是public,public可以省略
接口中的静态方法
public可以省略
静态方法在接口中的调用
没必要new对象因为静态和对象没关系,跟类有关系
静态☞直接用接口来点
接口中私有方法
定义分为两类
为什么用
common是只在接口中给1和2用的,你这样public别人也可以访问了
私有方法的使用
Java9才行
类2
接口中的常量(成员变量)
public static final
static☞和对象没关系,直接接口点
常量完全大写shift➕f6
总结
Java9中的接口更丰富
抽象类可以有抽象方法
虽然父亲只能有一个,直接父类是唯一的,(大家都是object的直接或间接子类)但是接口可以有很多个,都要覆盖重写他的抽象方法,如下
抽象方法就是父母对孩子的要求,覆盖重写就是孩子按自己的理解去行动
所以理解3.5.
接口与接口间是多继承关系
抽象方法重复没关系,因为抽象方法没有方法体
多态来了
对象同时拥有两种形态
是对象的多态性
多态就是右边的子当作父来看待
多态中方法访问的规律
18行成员方法,要是父子都有右边new的是谁(子)就用谁
要是父亲特有方法,就向上找,用父的
左实质,右内存
只方法才能覆盖重写,成员变量不行
多态中的成员变量访问规律
和之前一样,只能向上找不能向下找
编译看左边,运行还看左边
15行错了原因是,age是子的不是父的,父不可以往下找
多态中的成员方法访问规律
编译看左,运行看右
为什么用多态
对象的向上转型和向下转型
向下转型有前提
希望调用子类特有方法就要向下转型
想知道父类原先是什么
用instanceof
举例
完