<button id="rxoxw"><acronym id="rxoxw"></acronym></button>
<em id="rxoxw"></em>
      <em id="rxoxw"><acronym id="rxoxw"></acronym></em>
    1. <tbody id="rxoxw"><track id="rxoxw"></track></tbody>
      <tbody id="rxoxw"></tbody>

      1. 教育行業A股IPO第一股(股票代碼 003032)

        全國咨詢/投訴熱線:400-618-4000

        什么是繼承?類的繼承如何重寫父類?

        更新時間:2022年03月30日14時04分 來源:傳智教育 瀏覽次數:

        繼承的概念

        在Java中,類的繼承是指在一個現有類的基礎上去產生一個新的類,產生的新類被稱作子類,現有類被稱作父類,子類會自動擁有父類的屬性和方法。例如定義一個Animal類作為父類,該類擁有一個call()方法,當子類Cow和Sheep繼承自Animal類時,就會自動擁有call()方法,接下來通過一個圖例來描述類的繼承關系,如圖3-11所示。

        動物繼承關系圖

        圖3-11動物繼承關系圖

        在程序代碼中,如果想定義一個類繼承另一個類,需要使用extends關鍵字。如果一個類沒有使用extends關鍵字明確標識繼承另一個類,那么這個類就是默認繼承Object類。Object類是所有類的父類,那么該類中的方法適用于他的所有子類,其類中常用的方法有toString()、hashCode()方法等。

        注意:

        在類的繼承中,需要注意以下幾個問題,具體如下:

        1、在Java中,類只支持單繼承,不允許多重繼承,也就是說一個類只能有一個直接父類。例如Cow這個類繼承Animal之后,就不允許繼承其他類。

        2、多個類可以繼承一個父類,例如Cow和Sheep都可以繼承Animal類。

        3、在Java中,多層繼承是允許的,即一個類的父類可以再去繼承其他的父類,例如Zebra類繼承自Horse類,而Horse類又可以去繼承Animal類,即子孫三代。

        重寫父類方法

        在繼承關系中,子類會繼承父類中定義的方法,但子類也可以在父類的基礎上擁有自己的特征,即對父類的方法進行重寫。需要注意的是,在子類中重寫的方法必須與父類被重寫的方法具有相同的方法名、參數列表以及返回值類型。接下來通過一個案例來演示如何實現子類重寫父類的方法。具體步驟如下:

        1.創建Animal類

        創建一個Animal類,并在類中定義兩個方法call()和sleep(),分別在兩個方法中輸出“動物發出的聲音”和“動物在睡覺”的信息,如文件3-19所示。

        文件3-19Animal.java

        package com.itheima.example10;
        // 定義Animal類
        public class Animal {
            // 定義動物叫的方法
            public void call()
            System.out.println("動物發出聲音...");
            }
            // 定義動物睡覺的方法
            public void sleep() {
            System.out.println("動物在睡覺...");
            }
        }

        2.創建Cow類創建一個Cow類,使其繼承Animal類,并在Animal類重寫call()方法,如文件3-20所示。

        文件3-20Cow.java

        java1package com.itheima.example10;
        // 定義Cow類繼承Animal類
        public class Cow extends Animal {
            // 定義一個打印name的方法
            public void call() {
                System.out.println("哞...");
            }
        }

        3.創建測試類

        創建一個測試類Example10,分別調用call()方法和sleep()方法,如文件3-21所示。

        文件3-21Example10.java

        package com.itheima.example10;
        public class Example10 {
            public static void main(String[] args) {
                Cow c = new Cow(); // 創建一個Cow類的實例對象
                c.call(); // 調用Cow重寫的call()方法
                c.sleep(); // 調用父類Animal的sleep()方法
            }
        }
        

        運行結果如圖3-12所示。

        創建測試類

        圖3-12運行結果從圖3-12的運行結果可以看出,當子類繼承父類的時候,會擁有父類中所有的成員,由此可知,在調用sleep()方法時,會自動調用父類的sleep()方法。當子類重寫了父類方法之后,創建的子類對象會自動調用重寫的方法,即調用的是子類的call()方法。

        注意:子類重寫父類方法時,不可以使用比父類中被重寫的方法更嚴格的訪問權限,如:父類中的方法是public的,子類的方法就不可以是private的。



        猜你喜歡:

        什么是繼承?Java中如何聲明一個類繼承另一個類?

        Java培訓實戰教程之Java基礎知識精華部分

        如何理解單繼承?單繼承的語法格式介紹

        Java怎樣正確重寫父類?

        傳智教育Java培訓課程

        0 分享到:
        和我們在線交談!
        精品亚洲成A人在线观看青青,国产亚洲精品综合在线,亚洲 欧美 国产 日韩 字幕,日本在线高清不卡免V

        <button id="rxoxw"><acronym id="rxoxw"></acronym></button>
        <em id="rxoxw"></em>
            <em id="rxoxw"><acronym id="rxoxw"></acronym></em>
          1. <tbody id="rxoxw"><track id="rxoxw"></track></tbody>
            <tbody id="rxoxw"></tbody>