欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

理解Java的多态机制

程序员文章站 2024-02-09 18:06:12
...

实现多态的步骤:
1、继承父类
2、覆盖父类方法(如fun2())
3、使用父类声明对象,创建子类实际对象,即父类引用实际指向子类对象(堆中)
4、调用被覆盖的方法(包括子类中某行代码调用被覆盖的方法fun2(),还是直接父类引用调用方法fun2(),如father_monther_fucker.fun2(); ),将实际动态执行子类的方法fun2(),而不是父类的fun2() )

public class Wine {
    public void fun1(){
        System.out.println("Wine 的Fun.....");
        fun2();
    }
    
    public void fun2(){
        System.out.println("Wine 的Fun2...");
    }
}

public class JNC extends Wine{
    /**
     * @desc 子类重载父类方法
     *        父类中不存在该方法,向上转型后,父类是不能引用该方法的
     * @param a
     * @return void
     */
    public void fun1(String a){
        System.out.println("JNC 的 Fun1...");
        fun2();
    }
    
    /**
     * 子类重写父类方法
     * 指向子类的父类引用调用fun2时,必定是调用该方法
     */
    public void fun2(){
        System.out.println("JNC 的Fun2...");
    }
}

public class Test {
    public static void main(String[] args) {
        Wine a = new JNC();
        a.fun1();
    }
}
-------------------------------------------------
Output:
Wine 的Fun.....
JNC 的Fun2...