Java 向上转型 向下转型

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");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45858803/article/details/121345099