多态总结

package duotaidemo;
/*
 * 写了一个对象向上转型的demo
 * 注意点:因为对象发生了向上转型之后,所调用的方法一定是被子类复写过的方法,但是注意的是,此时a不能调用 B中的独有方法
 * 向上转型,子类-父类,b 是子类的实例对象,把b 给到A 就是属于向上转型
 */
public class duotaidemo {
public static void main(String[] args) {
    //子类实例化
    B b = new B();
    //向上转型,子类-父类,b 是子类的实例对象,把b 给到A 就是属于向上转型
    A a = b;
    a.fun(); //a 既然是父类对象,调用父类中的fun方法,显然是要输出父类中的fun结果的值,但是调试发现 输出的是子类的fun结果,这是为什么呢? 因为对象
             //发生了向上转型之后,所调用的方法一定是被子类复写过的方法,但是注意的是,此时a不能调用 B中的独有方法
}
}
//写一个父类
class A {
    //父类中写一个方法
    public void fun(){
        System.out.println("hell0");
    }
    //再写一个方法
    public void fun2(){
        System.out.println("hai!");
    }
}
//写一个子类去继承父类A
class B extends A{
    //复写父类中的fun方法
    public void fun(){
        System.out.println("哈哈哈哈");
    }
    //写一个子类自己的方法
    public void fun3(){
        System.out.println("这是我儿子独有的方法");
    }
}
原文地址:https://www.cnblogs.com/yuanyuan2017/p/6561263.html