java 继承与多态 note

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mygodhome/article/details/85923537

在java中,类的继承只能是单继承。多重继承可以通过实现多个接口实现。

UML 图:统一建模语言:类图。

调用父类构造方法:super语句必须位于子构造方法的第一行。

成员变量隐藏:子类成员变量和父类一样时,会屏蔽父类中的成员变量。

子类覆盖(override)父类方法:子类方法与父类方法完全一样(相同的方法名,相同的参数列表和相同的返回值,只是方法体不同.

覆盖方法后,不能比父类方法有更严格的访问控制限制。比如父类是protected,子类的就不能是private。且覆盖后的方法不能比父类方法产生更多异常。

关键字super:可以调用父类的成员方法,成员变量,构造函数

多态发生的前提

1.继承。多态发生在子类和父类之间。

2.覆盖。子类覆盖了父类的方法。

3.声明的变量类型是父类的类型,但实例则指向子类实例

引用类型的转换:只有属于同一棵继承层次树种的引用类型才可以转换。

downcast(向下转型):子类引用型变量转换成父类类型。需强制。

upcast(向上转型):父类引用型变量转换成子类类型。自动转换。

引用类型检查:obj instanceof type返回布尔类型  P146 可以先来判断,再做类型转换。

final 关键字:

1. final修饰的变量

1.1)声明的时候直接赋值。

1.2)空白final变量: a)实例常量: final int b;那么b可以在第一次使用的时候赋值。b)静态常量:final static int d;那么d只能在静态代码块赋值,不能在构造方法里初始化。

2.final 修饰类:不能被继承。

3.final修饰的方法:不能被子类覆盖。

猜你喜欢

转载自blog.csdn.net/mygodhome/article/details/85923537