zoukankan      html  css  js  c++  java
  • Java自学-接口与继承 隐藏

    Java中的方法隐藏

    与重写类似,方法的重写是子类覆盖父类的对象方法

    隐藏,就是子类覆盖父类的类方法

    步骤 1 : 父类

    父类有一个类方法 :battleWin

    package charactor;
      
    public class Hero {
        public String name;
        protected float hp;
      
        //类方法,静态方法
        //通过类就可以直接调用
        public static void battleWin(){
            System.out.println("hero battle win");
        }
          
    }
    

    步骤 2 : 子类隐藏父类的类方法

    package charactor;
      
    public class ADHero extends Hero implements AD{
      
        @Override
        public void physicAttack() {
            System.out.println("进行物理攻击");
        }
         
        //隐藏父类的battleWin方法
        public static void battleWin(){
            System.out.println("ad hero battle win");
        }   
         
        public static void main(String[] args) {
            Hero.battleWin();
            ADHero.battleWin();
        }
      
    }
    

    练习隐藏

    Hero h =new ADHero();
    

    h.battleWin(); //battleWin是一个类方法
    h是父类类型的引用
    但是指向一个子类对象
    h.battleWin(); 会调用父类的方法?还是子类的方法?

    答案

    虽然h指向的是一个子类对象,但是依然调用的是父类的类方法。
    甚至在h指向一个空对象null的时候,也能够成功调用battleWin().
    所以和h指向哪个对象无关,只和h的类型有关系。
    当然,也不建议通过对象去调用类方法,而应该直接通过类去调用类方法,从而规避理解上的歧义。

  • 相关阅读:
    Python自学笔记(12day)
    Python自学笔记(11day)
    Python自学笔记(10day)
    Python自学笔记(9day)
    Python自学笔记(8day)
    form标签的使用
    form标签的使用法
    img标签的使用方法
    <a></a>标签的使用
    html的标签
  • 原文地址:https://www.cnblogs.com/jeddzd/p/11516002.html
Copyright © 2011-2022 走看看