继承中的转型调用方法时小问题:
父类:
public class Parent{
public void show(){
System.out.println("父类的方法");
}
public void speak(){
System.out.println("弗莱说话");
}
public void talent(){
System.out.println("父类的特有方法");
}
}
子类:
public class Child extends Parent{
public void show(){
System.out.println("子类的方法");
}
public void speak(){
System.out.println("子类大声的讲话");
}
public void tell(){
System.out.println("子类的特有方法");
}
}
测试类:
public class Test {
public static void main(String[] args) {
Parent parent=new Child();
System.out.println("向上转型");
parent.show();
parent.speak();
parent.talent();
Child child=(Child)parent;
System.out.println("向下转型");
child.show();
child.speak();
child.talent();
child.tell();
}
}
结果:
向上转型
子类的方法
子类大声的讲话
父类的特有方法
向下转型
子类的方法
子类大声的讲话
父类的特有方法
子类的特有方法
向上转型后,调用不了子类的特有方法,可以调用父类的特有方法(父类特有方法肯定能调用,所以括号前的一句话感觉说了个废话) 向下转型后,既能调用子类的特有方法也能调用父类的特有方法 无论向上向下转型都调用重写方法时,调用出来的都是子类的方法
底层原理是啥,插个眼,回头再复习一下,干他,或者有大佬知道,给小老弟点一下
|