搜尋
首頁Javajava教程如何利用JAVA中的繼承、構造方法以及重寫和重載方法?

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?


建構方法

#類別的建構方法是特殊的方法,此方法名稱必須和類別名稱一致,建構不能有回傳值不使用void,不能直接調用,在類別物件實例化時自動調用,new 的時候可以調用。一般建構方法用於類別物件實例化時的初始化。如果一個類別沒有編寫構造方法,系統會自動為此類編譯時新增一個無參構造方法。如果宣告類別寫了建構方法,系統就不再加入無參構造方法,建議寫完建構方法時,最好寫一個無參構造方法。

無參構造

說白了就是沒有參數的建構方法
概念看不懂舉例就清晰了。
宣告一個類別A

public class A {
    }

在類別A中建立一個建構方法A(),並且列印出一句話
建構方法必須和類別名稱一樣

public class A {
    public A(){
        System.out.println("构造方法A()");
    }}

新建一個測試類別,並在類別中nuw一個A類別的物件

public class Test {
    public static void main(String[] args) {
        A a = new A();
    }}

執行main方法試試看

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?

#建構方法相當於在new物件是自動使用的方法

#有參考問題


有參考建構就是有參數的建構方法
在類別A中宣告一個有參數的建構方法,傳入兩個String類型的參數,a和b

public class A {
    public A() {
    }

    public A(String a, String b) {
        System.out.println(a + b);
    }}

在測試類別中new一個物件a時傳入參數

public class Test {
    public static void main(String[] args) {
        A a = new A("aaa", "bbb");
    }}

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?執行main方法

#注意

沒有建構方法的時候,類別中隱藏了一個無參構造。但是創造一個有參構造,隱藏的無參構造就會消失。那以後new物件就只能帶參數了。所以在建有參構造時一定要創建一個無參構造方法放那。

類別的繼承

java語言中,類別class 是單一繼承,多實作介面。介面interface 是多繼承的。

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?



為什麼要繼承呢?因為子類別想要在父類別的基礎上新增功能。 子類別繼承父類別可以繼承父類別中的方法和屬性
下面舉例分析:

父類別是人,子類別是老司機。

人的特徵有:兩隻手,兩隻眼,兩隻腳,會吃會喝
老司機繼承了人類的特徵,並且多出了自己會開車這個功能。

程式碼如下:

這是一個人 類,具有以下屬性和功能。

public class Ren {
    public final String shou = "两只手";
    public final String jiao = "两只脚";
    public final String yan = "两只眼";

    public void chi() {
        System.out.println("会吃");
    }

    public void he() {
        System.out.println("会喝");
    }}

這是舊司機類,繼承了人類。並且多了個會開車的功能

public class Siji extends Ren {
    public void kai() {
        System.out.println("会开车");
    }}

測試:建立老司機物件輸出屬性並呼叫方法。

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?

public class Test {
    public static void main(String[] args) {
        Siji b = new Siji();
        System.out.println(b.jiao);
        System.out.println(b.shou);
        System.out.println(b.yan);
        b.chi();
        b.he();
        b.kai();
    }}

方法重寫、重載


#重寫 覆寫:方法名,傳回類型,形參都一樣。有此種情況的,必須為繼承關係。
重載:方法名稱一樣,傳回類型,形參數,型別不樣的方法,不一定必須是繼承關係,同一個類別中都可以,例如建構方法重載

#重寫


因為子類別不滿意父類別的方法所以想把它改一下,這就是子類別重寫父類別的方法。
例如人會吃會喝,但老司機不喜歡它會吃這個功能,想把它改一下,改成會吃屎。

程式碼如下:


老司機重寫人類的chi()方法
方法名稱一定要一樣

public class Siji extends Ren {
    public void kai() {
        System.out.println("会开车");
    }

    public void chi() {
        System.out.println("会吃屎");
    }}

如何利用JAVA中的繼承、構造方法以及重寫和重載方法?現在重寫運行測試類別

重載


#有參考構造和無參考建構就是方法重載,一個類別中有兩個名字一樣的方法,但是他們的回傳值類型和參數類型,參數個數不一樣。
兩個方法的回傳值類型和參數類型,參數個數,只要有一個不一樣。但是他們方法名一樣,那麼兩個方法就重載。 ######

以上是如何利用JAVA中的繼承、構造方法以及重寫和重載方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
是否有任何威脅或增強Java平台獨立性的新興技術?是否有任何威脅或增強Java平台獨立性的新興技術?Apr 24, 2025 am 12:11 AM

新興技術對Java的平台獨立性既有威脅也有增強。 1)雲計算和容器化技術如Docker增強了Java的平台獨立性,但需要優化以適應不同雲環境。 2)WebAssembly通過GraalVM編譯Java代碼,擴展了其平台獨立性,但需與其他語言競爭性能。

JVM的實現是什麼,它們都提供了相同的平台獨立性?JVM的實現是什麼,它們都提供了相同的平台獨立性?Apr 24, 2025 am 12:10 AM

不同JVM實現都能提供平台獨立性,但表現略有不同。 1.OracleHotSpot和OpenJDKJVM在平台獨立性上表現相似,但OpenJDK可能需額外配置。 2.IBMJ9JVM在特定操作系統上表現優化。 3.GraalVM支持多語言,需額外配置。 4.AzulZingJVM需特定平台調整。

平台獨立性如何降低發展成本和時間?平台獨立性如何降低發展成本和時間?Apr 24, 2025 am 12:08 AM

平台獨立性通過在多種操作系統上運行同一套代碼,降低開發成本和縮短開發時間。具體表現為:1.減少開發時間,只需維護一套代碼;2.降低維護成本,統一測試流程;3.快速迭代和團隊協作,簡化部署過程。

Java的平台獨立性如何促進代碼重用?Java的平台獨立性如何促進代碼重用?Apr 24, 2025 am 12:05 AM

Java'splatformindependencefacilitatescodereusebyallowingbytecodetorunonanyplatformwithaJVM.1)Developerscanwritecodeonceforconsistentbehavioracrossplatforms.2)Maintenanceisreducedascodedoesn'tneedrewriting.3)Librariesandframeworkscanbesharedacrossproj

您如何在Java應用程序中對平台特定問題進行故障排除?您如何在Java應用程序中對平台特定問題進行故障排除?Apr 24, 2025 am 12:04 AM

要解決Java應用程序中的平台特定問題,可以採取以下步驟:1.使用Java的System類查看系統屬性以了解運行環境。 2.利用File類或java.nio.file包處理文件路徑。 3.根據操作系統條件加載本地庫。 4.使用VisualVM或JProfiler優化跨平台性能。 5.通過Docker容器化確保測試環境與生產環境一致。 6.利用GitHubActions在多個平台上進行自動化測試。這些方法有助於有效地解決Java應用程序中的平台特定問題。

JVM中的類加載程序子系統如何促進平台獨立性?JVM中的類加載程序子系統如何促進平台獨立性?Apr 23, 2025 am 12:14 AM

類加載器通過統一的類文件格式、動態加載、雙親委派模型和平台無關的字節碼,確保Java程序在不同平台上的一致性和兼容性,實現平台獨立性。

Java編譯器會產生特定於平台的代碼嗎?解釋。Java編譯器會產生特定於平台的代碼嗎?解釋。Apr 23, 2025 am 12:09 AM

Java編譯器生成的代碼是平台無關的,但最終執行的代碼是平台特定的。 1.Java源代碼編譯成平台無關的字節碼。 2.JVM將字節碼轉換為特定平台的機器碼,確保跨平台運行但性能可能不同。

JVM如何處理不同操作系統的多線程?JVM如何處理不同操作系統的多線程?Apr 23, 2025 am 12:07 AM

多線程在現代編程中重要,因為它能提高程序的響應性和資源利用率,並處理複雜的並發任務。 JVM通過線程映射、調度機制和同步鎖機制,在不同操作系統上確保多線程的一致性和高效性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。