程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解析Java繼續中辦法的籠罩和重載

解析Java繼續中辦法的籠罩和重載

編輯:關於JAVA

解析Java繼續中辦法的籠罩和重載。本站提示廣大學習愛好者:(解析Java繼續中辦法的籠罩和重載)文章只能為提供參考,不一定能成為您想要的結果。以下是解析Java繼續中辦法的籠罩和重載正文


辦法的籠罩

在類繼續中,子類可以修正從父類繼續來的辦法,也就是說子類能創立一個與父類辦法有分歧功效的辦法,但具有雷同的稱號、前往值類型、參數列表。

  假如在新類中界說一個辦法,其稱號、前往值類型和參數列表正好與父類中的雷同,那末,新辦法被稱做籠罩舊辦法。

  參數列表又叫參數簽名,包含參數的類型、參數的個數和參數的次序,只需有一個分歧就叫做參數列表分歧。

  被籠罩的辦法在子類中只能經由過程super挪用。

  留意:籠罩不會刪除父類中的辦法,而是對子類的實例隱蔽,臨時不應用。

  請看上面的例子:

  public class Demo{
  public static void main(String[] args) {
  Dog myDog = new Dog("行行圈");
  myDog.say(); // 子類的實例挪用子類中的辦法
  Animal myAnmial = new Animal("行行圈在線");
  myAnmial.say(); // 父類的實例挪用父類中的辦法
  }
  }
  class Animal{
  String name;
  public Animal(String name){
  this.name = name;
  }
  public void say(){
  System.out.println("我是一只小植物,我的名字叫" + name + ",我會收回啼聲");
  }
  }
  class Dog extends Animal{
  // 結構辦法不克不及被繼續,經由過程super()挪用
  public Dog(String name){
  super(name);
  }
  // 籠罩say() 辦法
  public void say(){
  System.out.println("我是一只小狗,我的名字叫" + name + ",我會收回汪汪的啼聲");
  }
  }

  運轉成果:


我是一只小狗,我的名字叫行行圈,我會收回汪汪的啼聲
我是一只小植物,我的名字叫行行圈在線,我會收回啼聲

辦法籠罩的准繩:

  籠罩辦法的前往類型、辦法稱號、參數列表必需與原辦法的雷同。

  籠罩辦法不克不及比原辦法拜訪性差(即拜訪權限不許可減少)。

  籠罩辦法不克不及比原辦法拋出更多的異常。

  被籠罩的辦法不克不及是final類型,由於final潤飾的辦法是沒法籠罩的。

  被籠罩的辦法不克不及為private,不然在其子類中只是新界說了一個辦法,並沒有對其停止籠罩。

  被籠罩的辦法不克不及為static。假如父類中的辦法為靜態的,而子類中的辦法不是靜態的,然則兩個辦法除這一點外其他都知足籠罩前提,那末會產生編譯毛病;反之亦然。即便父類和子類中的辦法都是靜態的,而且知足籠罩前提,然則依然不會產生籠罩,由於靜態辦法是在編譯的時刻把靜態辦法和類的援用類型停止婚配。

辦法的重載:

  後面曾經對Java辦法重載停止了解釋,這裡再強調一下,Java父類和子類中的辦法都邑介入重載,例如,父類中有一個辦法是 func(){ ... },子類中有一個辦法是 func(int i){ ... },就組成了辦法的重載。

籠罩和重載的分歧:

  辦法籠罩請求參數列表必需分歧,而辦法重載請求參數列表必需紛歧致。

  辦法籠罩請求前往類型必需分歧,辦法重載對此沒有請求。

  辦法籠罩只能用於子類籠罩父類的辦法,辦法重載用於統一個類中的一切辦法(包含從父類中繼續而來的辦法)。

  辦法籠罩對辦法的拜訪權限和拋出的異常有特別的請求,而辦法重載在這方面沒有任何限制。

  父類的一個辦法只能被子類籠罩一次,而一個辦法可以在一切的類中可以被重載屢次。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved