title | date | tags | ||
---|---|---|---|---|
Java继承与委托中的一致性 |
2019-09-09 08:17:00 -0700 |
|
父类和子类具有一致性,示例代码如下所示 :
class Parent {
···
void parentMethod(){
···
}
}
class Child extends Parent {
···
void childMethod(){
···
}
}
此时,Child类的实例可以被保存在 Parent 类型中的变量中,所以可以调用从 Parent 类中继承的方法,也就是说,可以像操作 Parent 类的实例一样操作 Child 类的实例. 如下是将子类当做父类看待的示例代码~
Parent obj = new Child();
obj.parentMethod();
相反,如果想将父类当做子类一样操作,则需要先进行类型转换哟~
Parent obj = new Child();
((Child)obj).childMethod();
使用委托让接口具有透明性,自己和被委托对象具有一致性 : 如下示例程序, Rose 和 Violet 都有相同的 method 方法, Rose 将 method 方法的处理委托给了 Violet
/* or interface */abstract class Flower {
abstract void method();
}
class Rose extends Flower {
Violet obj = ···
void method() {
obj.method();
}
}
class Violet extends Flower {
void method() {
···
}
}