public class Test {
public static void main(String[] args) {
A a = new B();//向上转型多态
a.doSome();//此调用会输出子类中的doSome,因为a的本质为B类型的对象
//a.doOther();报错因为A类中并没有doOther方法
//如果一定要调用doOther方法我们可以强制向下转型
if(a instanceof B){
B b=(B)a;
b.doOther();
}
// 此时我们便可以通过b来调用doOther方法
// b.doOther();
}
}
public class A {
public void doSome(){
System.out.println("doSome");
}
}
public class B extends A{
public void doOther(){
System.out.println("doOther");
}
@Override
public void doSome() {
System.out.println("子类中的doSome");
}
}