Java常見面試題02-方法重寫和方法重載的區別?方法重載能改變返回值類型嗎?


方法重寫和方法重載的區別?方法重載能改變返回值類型嗎?

      A:Override方法重寫和Overload方法重載的區別?

        Overload是否可以改變返回值類型?可以

方法重寫

 •  子類中出現了和父類中一模一樣的方法聲明,也被稱為方法覆蓋,方法復寫。

 •  使用特點:

  •   如果方法名不同,就調用對應的方法

  •   如果方法名相同,最終使用的是子類自己的

父類方法重寫格式:super.父類成員方法名

•  方法重寫的注意事項

    父類中私有方法不能被重寫

   子類重寫父類方法時,訪問權限不能更低(最好一致都是public)

   父類靜態方法,子類也必須通過靜態方法進行重寫。

方法重載

     方法重載:本類出現的類名相同,參數列表不同的方法,與返回值無關。

      B:this和super的區別和各自的作用?

       this代表本類的對象引用,super代表父類的空間標識。可以理解為父類的引用,通過這個可以訪問父類成員。

      場景:

         成員變量:

             this.成員變量

             super.成員變量

          構造方法:

             this(…)

             super(…)

          成員方法:

             this.成員方法

             super.成員方法

面試題:看程序寫結果

   雖然子類中構造方法默認有一個super();

   初始化的時候,不是按照那個順序執行的。

   而是按照分層初始化進行的。

   它僅僅要表示先初始化父類數據,在初始化子類數據。

結果:

      YXYZ

class X {

  Y b = new Y();

  X() {

    System.out.print("X");②

  }

class Y {

  Y() {

    System.out.print("Y");①

  }

public class Z extends X (先初始化繼承){

  Y y = new Y();③

  Z() {

    //super

    System.out.print("Z");④

  }

  public static void main(String[] args) {

    new Z();

  }

}

你get到了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM