(1):使用接口的时候,需要注意:
1.接口是没有静态代码块或者构造方法。
2.一个类直接父类是唯一的,但是一个类可以同时实现多个接口,
格式:
public class MyInterfaceImpl implements,MyInterfaceA,MyInterfaceB {
覆盖重写所有的抽象方法
}
3.如果实现类所实现的多个接口当中,存在重复的抽象方法 ,那么只需要覆盖重写一次即可。
4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类
5.如果实现类所是实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写
6.一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先使用父类当中的方法。
(2):Java的多态性;代码中体现多态性,其实就是一句话,父类引用指向子类对象
格式:
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类对象();
(4):访问成员变量的两种方式:
1.直接通过对象名称访问成员变量:优先用谁,没有则向上找
2.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找
(5):在多态的代码当中,成员方法的访问规则是:
看new 的是谁,就优先用谁,没有 则向上找
口诀:编译看左边,运行看右边。
对比一下:
1.成员变量:编译看左边,运行还看左边
2.成员方法:编译看左边,运行看右边。
(5):1.对象的向上转型,其实就是多态的写法,注意事项:向上转型一定是安全的,从小范围转向了大范围,从小范围的猫,向上成为了更大范围的动物】
格式:父类名称 对项目 = new 子类名称();
含义:右侧创建一个子类对象,把它当成做父类看待使用
2.对象的向下转型,其实就是一个还原的动作
格式:
子类对象 对象名 =(子类对象) 父类对象
含义:将父类对象,还原成本来的子类对象
注意事项:a.必须保证对象本来创建的时候,就是猫,才能向下转型成为动物
b.如果对象创建的时候本来就不是猫,现在非要向下转型成为猫,就会报错。
向下转型类是与强制类型转换。