毕向东老师的视频将多态的时候一开始说:父类的引用无法访问子类中的特有方法因为前期父类不知道子类中的特有功能,但是后面的例子
class 毕姥爷{
void 讲课(){
System.out.println("企业管理");
}
void 钓鱼(){
System.out.println("钓鱼");
}
}
class 毕老师 extends 毕姥爷{
void 讲课(){
System.out.println("JAVA");
}
void 看电影(){
System.out.println("看电影");
}
}
class {
public static void main(String[] args) {
毕姥爷 x = new 毕老师(); //毕老师对象被提升为了毕姥爷类型。
// x.讲课();
// x.看电影(); //错误.
毕老师 y = (毕老师)x; //将毕姥爷类型强制转换成毕老师类型。
y.看电影();//在多态中,自始自终都是子类对象在做着类型的变化。
}
}
这个例子说明了:只要强制将父类的引用转换成子类类型以后,也就是向下转型以后,父类就可以调用子类的特有方法了!!这个前后矛盾,到底这个父类能不能调用子类的特有方法????
|
|