再论向上转型
- 把某个对象的引用视为对其基类型的引用被称为向上转型。因为在继承树的画法中,基类是放置在上方的。
转机
- 只有非private方法才可以被覆盖。
- 只有普通的方法调用时多态的。
- 静态方法是与类,而非与单个的对象相关联的。
构造器和多态
复杂对象(带有继承的对象)调用构造器顺序
-
1.调用基类构造器。这个步骤会不断的反复递归下去,首先是构造这种层次结构的根,然后是下一层导出类,等等,直到最底层的导出类。
-
2.按照声明顺序调用成员的初始化方法。
-
3.调用导出类主体(导出类构造)
-
如果父类方法已经被覆盖,那只有子类内部通过super才能调到
package simple;
class PortableLunch {
private Apple a = new Apple();
PortableLunch() {
System.out.println("PortableLunch()");
}
}
class Banana {
Banana() {
System.out.println("Banana()");
}
}
class Apple {
Apple() {
System.out.println("Apple()");
}
}
public class Sandwich extends PortableLunch {
private Banana b = new Banana();
Sandwich() {
System.out.println("Sandwich()");
}
public static void main(String[] args) {
new Sandwich();
}
}
Apple()
PortableLunch()
Banana()
Sandwich()
用继承进行设计
- 通过准则:用继承表达行为间的差异,并用字段表达状态上的变化(其实就是使用组合使自己的状态发生比变化)。
网友评论