美文网首页java 从入门到精通
java中 多态 父子类的调用顺序

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

作者: Exception_Cui | 来源:发表于2021-05-06 11:04 被阅读0次
    关于多态,可以有个结论,静态方法(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!            
    

    相关文章

      网友评论

        本文标题:java中 多态 父子类的调用顺序

        本文链接:https://www.haomeiwen.com/subject/augrdltx.html