接口与类之间 的关系: 实现关系。
注意: 一个类可以实现多个接口。
接口与接口之间的关系: 继续关系。
注意: 一个接口是可以继承多个接口的。
多态:父类的引用类型变量指向了子类的对象,或者是接口的引用类型变量指向了接口实现类的对象。
多态要注意细节:
- 多态情况下,如果子父类存在同名的成员变量时,访问的是父类的成员变量.
- 多态情况下,如果子父类存在同名的非静态函数时,访问的是子类 的成员函数。
- 多态情况下,如果子父类存在同名的静态函数时,访问的是父类的成员函数。
- 多态情况下, 不能访问子类特有的成员。
多态的应用:
1.多态用于形参类型的时候,可以接收更多类型的数据 - 多态用于返回值类型的时候,可以返回更多类型的数据
目前多态情况下不能访问子类特有的成员。
如果需要访问子类特有的成员,那么需要进行类型强制转换.
基本数据类型的转换
小数据类型-------->大的数据类型 自动类型转换
大数据类型--------->小数据类型 强制类型转换 小数据类型 变量名 = (小数据类型)大数据类型;
引用数据类型的转换
小数据类型--------->大数据类型 自动类型转换。
大数据类型--------->小数据类型 强制类型转换
类型转换最场景的问题: java.lang.ClassCastException。 强制类型转换失败。
多态: 父类的引用类型变量指向了子类的对象或者是接口类型的引用类型变量指向了接口实现类 的对象。
实现关系下的多态:
接口 变量 = new 接口实现类的对象