10. 继承和多态:
1) 关键字super:
子类调用父类的构造函数的语法:
super();和super(参数);
且必须出现在子类构造函数的第一行。
2) 函数覆盖:
子类定义的方法必须与父类方法具有相同的投标制和相同的返回值类型。
实例方法仅当能访问时才能够覆盖.静态方法也可以继承,但是不能被覆盖,
如果父类中定义的静态方法在子类重新被定义,那么父类中的方法将会被隐藏。
3) 多态性和动态绑定:
为父类设计的任何代码都可以应用于子类,这个特性称为多态性。
假设o为C1、C2、C3……Cn的实例,且C1是C2的子类,C2 是C3的子类Cn-1是Cn的子类,
则在o调用方法p时Java虚拟机会在C1、C2、C3……Cn中查找p的实例,直到找到为止,
且一旦找到一个实现,停止查找并调用这个第一次找到的实例。
4) 对象类型的转换:
子类对象可以隐式的转换为父类对象:
object o = new sonObject();
父类对象必须显示的转换为子类对象:
sonClass sonObject = (sonObject) object;
5) clone方法:
对象、数组都可以实现clone方法:
newObject = oldObject.clone();
newArray[] = oldArray.clone();
复制后newObject和newArray会有单独的内存和空间,并且内
容与oldObject和oldArray相同。
6) getClass方法:
对象调用getClass方法可以显示:
object.getClass();