」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 遺產

遺產

發佈於2024-11-01
瀏覽:125
  • 繼承是物件導向程式設計的三個基本原則之一。

  • 允許建立層次分類。

  • 透過繼承,您可以建立一個通用類別來定義一組相關項目的共同特徵。

  • 這個通用類別可以被其他更具體的類別繼承,從而添加專有特性。

  • 用Java術語來說,繼承的類別稱為超類別。

  • 繼承的類別稱為子類別。

  • 子類別是超類別的特殊版本。

  • 子類別繼承了超類別的所有變數和方法,並添加了自己獨特的元素。

繼承的基本面向

  • Java 支援繼承,允許一個類別在其聲明中合併另一個類別。

  • 這是透過 extends 關鍵字完成的。

  • 子類別為超類別新增功能(擴充)。

  • 這方面的一個例子是建立一個名為 TwoDShape 的超類,它儲存二維物件的寬度和高度。

  • 創建了一個名為 Triangle 的子類別來擴充 TwoDShape。

  • extends 關鍵字用於建立子類別。

Herança

Herança

  • TwoDShape 定義通用二維形狀的屬性,例如正方形、矩形、三角形等。

  • Triangle 類別是 TwoDShape 的子類,並建立一個特定類型:三角形。

  • Triangle 繼承了 TwoDShape 的所有內容,並加入了樣式欄位、area() 方法和 showStyle() 方法。

  • style 儲存三角形的樣式,可以是任何描述,例如「完整」、「輪廓」或「等腰」。

  • area()方法計算並傳回三角形的面積。

  • showStyle() 方法顯示三角形的樣式。

  • Triangle 可以在 area() 中以及直接在 t1 和 t2 物件中存取 TwoDShape 的寬度和高度成員。

  • TwoDShape 儘管是 Triangle 的超類,但它是一個獨立的類,可以單獨使用。

TwoDShape 形狀 = new TwoDShape();
形狀.寬度 = 10;
形狀.高度 = 20;
shape.showDim();

  • TwoDShape 類別的物件不知道或存取 TwoDShape 的任何子類別。

Herança

  • 繼承超類別的類別聲明:

類別子類別名稱擴展超類別名稱{
// 類體
}

  • 在 Java 中,您只能為您建立的任何子類別指定單一超類別。

  • Java 不支援多重繼承(從同一個子類別中的多個超類別繼承),與 C 不同。

  • 可以建立一個繼承層次結構,其中一個子類別成為另一個子類別的超類別。

  • 沒有類別可以是其自身的超類別。

  • 繼承的一個優點是超類別可以定義多個物件共有的屬性,從而允許創建許多特定的子類別。

  • 每個子類別都可以在超類別的基礎上定義自己的具體分類。

  • 一個例子是建立 TwoDShape 的子類別來封裝矩形。

Herança

  • 矩形類別是 TwoDShape 的子類別。

  • 加入 isSquare() 方法,用於判斷矩形是否為正方形(寬度等於高度時)。

  • 也加入了area()方法,計算矩形的面積。

版本聲明 本文轉載於:https://dev.to/devsjavagirls/heranca-2nbo?1如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    程式設計 發佈於2025-05-06
  • 如何在Java的全屏獨家模式下處理用戶輸入?
    如何在Java的全屏獨家模式下處理用戶輸入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    程式設計 發佈於2025-05-06
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 in position 2-3: truncated \UXXXXXXXX escapeThi...
    程式設計 發佈於2025-05-06
  • 在Go語言中如何簡潔定義10的冪常量
    在Go語言中如何簡潔定義10的冪常量
    在GO 利用浮點線文字一種簡潔的方式是使用浮點文字,該方法是使用floingpoint protals。寫作1E3比寫作1000更有效。這是一個示例(67個沒有空間的字符):的文字用於未構圖的整數常數,我們可以將1000用於KB,並用KB將隨後的常量乘以KB,如下所示(77個沒有空格的字符):,作...
    程式設計 發佈於2025-05-06
  • 如何在Chrome中居中選擇框文本?
    如何在Chrome中居中選擇框文本?
    選擇框的文本對齊:局部chrome-inly-ly-ly-lyly solument 您可能希望將文本中心集中在選擇框中,以獲取優化的原因或提高可訪問性。但是,在CSS中的選擇元素中手動添加一個文本 - 對屬性可能無法正常工作。 初始嘗試 state)</option> < o...
    程式設計 發佈於2025-05-06
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-05-06
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-05-06
  • 左連接為何在右表WHERE子句過濾時像內連接?
    左連接為何在右表WHERE子句過濾時像內連接?
    左JOIN CONUNDRUM:WITCHING小時在數據庫Wizard的領域中變成內在的加入很有趣,當將c.foobar條件放置在上面的Where子句中時,據說左聯接似乎會轉換為內部連接。僅當滿足A.Foo和C.Foobar標準時,才會返回結果。 為什麼要變形?關鍵在於其中的子句。當左聯接的右側...
    程式設計 發佈於2025-05-06
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在Silverlight應用程序中,嘗試使用LINQ建立LINQ連接以錯誤而實現的數據庫”,無法找到查詢模式的實現。”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例...
    程式設計 發佈於2025-05-06
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-05-06
  • MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    在兩個條件下插入或更新或更新 solution:的答案在於mysql的插入中...在重複鍵更新語法上。如果不存在匹配行或更新現有行,則此功能強大的功能可以通過插入新行來進行有效的數據操作。如果違反了唯一的密鑰約束。 實現所需的行為,該表必須具有唯一的鍵定義(在這種情況下為'名稱'...
    程式設計 發佈於2025-05-06
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-05-06
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-05-06
  • 哪種在JavaScript中聲明多個變量的方法更可維護?
    哪種在JavaScript中聲明多個變量的方法更可維護?
    在JavaScript中聲明多個變量:探索兩個方法在JavaScript中,開發人員經常遇到需要聲明多個變量的需要。對此的兩種常見方法是:在單獨的行上聲明每個變量: 當涉及性能時,這兩種方法本質上都是等效的。但是,可維護性可能會有所不同。 第一個方法被認為更易於維護。每個聲明都是其自己的語句,使...
    程式設計 發佈於2025-05-06
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 但是,PHP工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活地重新定義函數。 runkit_function_renction_...
    程式設計 發佈於2025-05-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3