Java基础之多态性

 3 class A {
 4     public void fun1(){
 5        System.out.println("A--->public fun1()");
 6     }
 7     public void fun2(){
 8          this.fun1();
 9     }
10 };
11 class B extends A{
12     public void fun1(){
13       System.out.println("B---->public void fun1()");
14     }
15     public void fun3(){
16        System.out.println("B------>public void fun3()");
17     }
18 };
19 
20 public class PolDemo1 {
21        public static void main(String[] args){
22               B b = new B();//实例化对象
23               A a=b;//向上转型关系
24               a.fun1();
25               a.fun2();
//a.fun3();不存在报错
26 } 27 };


 输出:

B---->public void fun1()
B---->public void fun1()

 方法覆盖,向上转型先执行覆盖方法,再再执行父类;

原文地址:https://www.cnblogs.com/Ricezhang/p/4628449.html