java 从入门到精通

java中 多态 父子类的调用顺序

2021-05-06  本文已影响0人  Exception_Cui
关于多态,可以有个结论,静态方法(fu.show())和成员变量看左边
成员方法 编译看左边 运行看右边,原因是在子类中发生了重写
 public class Fu {
     public int num=10;
     public static void show(){
         System.out.println("this is fu!");
     }

     public void showNum(){
          System.out.println("this is zi num="+num);
     }
    
     public void methodFu(){
          System.out.println("Fu 类的方法");
      }
    
 }

 public class Zi extends  Fu{
     public int num=20;
   
     public  static void  show(){
        System.out.println("this is ZI!");
     }
    @override
     public void showNum(){
          System.out.println("this is zi num="+num);
     }
  
    public void methodZi(){
          System.out.println("Zi 类的方法");
      }

 }
Fu f= new Zi();
f.num          //Fu类的成员变量   10
f.showNum();   // Zi类的成员方法  20
f.methodFu();   //Fu类的方法的   现在Zi 类 查找,没有就找Fu类的


//f.methodZi();    //Zi 类的方法    编译报错
Zi zi= (Zi ) f;
zi.methodZi() 


f.show();       this is fu!  //调用静态方法, 谁点出来的就是谁的, 静态方法不属于对象,而是属于类
Zi.show();     this is ZI!            
上一篇下一篇

猜你喜欢

热点阅读