<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 1、多態 多態是同一個行為具有多個不同表現形式或形態的能力。 ### 多態存在的三個必要條件 * 繼承 * 重寫 * 父類引用指向子類對象 ### 1.1 代碼實現 ``` public class Animal { public void eat() { System.out.println("動物都有吃東西的能力"); } } public class Cat extends Animal { public void run () { System.out.println("小貓快樂的奔跑"); } @Override public void eat() { System.out.println("小貓吃魚~~~"); } } public class Dog extends Animal { public void sleep() { System.out.println("小狗睡覺~~~"); } @Override public void eat() { System.out.println("小狗吃骨頭~~~"); } } ``` ### 1.2 向上轉型 向上轉型即父類引用指向子類實例。 ``` public class Test { public static void main(String[] args) { Animal a1 = new Animal(); // 向上轉型、隱式轉型、自動轉型 Animal a2 = new Cat(); Animal a3 = new Dog(); a1.eat(); // 動物都有吃東西的能力 a2.eat(); // 小貓吃魚~~ a3.eat(); // 小狗吃骨頭~~~ } } ``` 【選擇】創建一個父類`Animal`,一個子類`Cat`,`Animal three = new Cat();`不是()(選擇一項) ``` A 向上轉型 B 自動轉型 C 向下轉型 D 隱式轉型 ``` 【選擇】下列代碼怎么修改可以使其成功運行()(選擇一項) ``` public class Animal { public void eat() { System.out.println("動物吃~~~"); } } public class Bird extends Animal { public void eat() { System.out.println("鳥吃蟲子~~~"); } public void fly() { System.out.println("鳥兒正在飛"); } } public class Test { public static void main(String[] args) { Animal one = new Bird(); // 1 one.eat(); // 2 one.fly(); // 3 } } ``` ``` A 刪除掉標注3位置的 one.fly(); B 標注1的 Animal one = new Bird(); 修改為 Animal one = new Animal(); C 刪除掉標注2位置的 one.eat(); D 標注1的 Animal one = new Bird(); 修改為 Bird one = new Animal(); ``` ### 1.3 向下轉型 向下轉型(強制類型轉換)即子類引用指向父類實例,需要強制類型轉換。 ``` Cat temp = (Cat) animal; ``` 【選擇】閱讀以下代碼,橫線處填寫()無法在控制臺輸出“無憂無慮“(選擇兩項) ``` class Animal { public void set() { System.out.println("香甜可口"); } } class Fish extends Animal { public void swim() { System.out.println("自由自在"); } } class Roo extends Animal { public void leap() { System.out.println("無憂無慮"); } } public class Test { public static void main(String[] args) { _______________________ } } ``` ``` A Roo one = new Roo(); one.leap(); B Animal one = new Roo(); ((Roo) one).leap(); C Roo one = new Animal(); one.leap(); D Animal one = new Animal(); Roo roo = new (Roo) one; one.leap(); ``` ### 1.4 `instanceof`運算符 ``` // 用于判斷 obj 是否是 Classname 的實例或者是派生類實例 boolean flag = obj instanceof Classname; ``` 【選擇】閱讀下列 Java 代碼,橫線處應該填寫()能在控制臺正確輸出“汪汪汪“(選擇一項) ``` class Animal {} class Dog extends Animal { public void shout() { System.out.println("汪汪汪"); } } class Roo extends Animal { public void leap() { System.out.println("無憂無慮"); } } class Manager { public void play(Animal animal) { (1) } } public class Test { public static void main(String[] args) { (2) new Manager().play(animal); } } ``` ``` A (1) (Dog) animal.shout(); (2) Animal animal = new Dog(); B (1) if(animal instanceof Dog) { ((Dog) animal).shout(); } else { ((Roo) animal).leap(); } (2) Animal animal = new Animal(); C (1) if(animal instanceof Dog) { ((Dog) animal).shout(); } else { ((Roo) animal).leap(); } (2) Animal animal = new Dog(); D (1) if(animal instanceof Dog) { ((Dog) animal).shout(); } else { ((Roo) animal).leap(); } (2) Animal aniaml = new Roo(); ``` 【選擇】下列關于 instanceof 說法不正確的是()(選擇一項) ``` A instanceof 的返回值為 true 和 false B instanceof 可以用來判斷對象是否可滿足某個特定類型 C 可以通過"A instanceof B"表示 A 類可以轉型為B類 D instanceof 可放在if語句的條件表達式中 ``` 【選擇】已知父類 Person,子類 Man。判斷 Person 的對象person是否滿足類 Man 的實例特征,正確的語句為()(選擇一項) ``` Person person = new Man(); Man man = new Man(); ``` ``` A if (person instanceof Man) B if (man instanceof Person) C if (Person instanceof man) D if (Man instanceof person) ``` 【選擇】在 Java 中,多態的實現不僅能減少編碼的工作量,還能大大提高程序的可維護性及擴展性,那么實現多態的步驟包括以下幾個方面除了()(選擇一項) ``` A 子類重寫父類的方法 B 子類方法設置為final類型 C 定義方法時,把父類類型作為參數類型;調用方法時,把父類或子類的對象錯位參數傳入方法 D 運行時,根據實際創建的對象類型動態決定使用哪個方法 ``` 【編程】應用繼承和多態的思想,編寫動物類,成員方法是動物叫聲。寫三個具體的類(貓,狗,羊),它們都是動物類的子類,并重寫父類的成員方法。編寫測試類,隨機產生三種具體動物,調用叫聲這個方法。程序參考運行效果圖如下: ``` 小羊的叫聲:咩咩咩~~~ 小狗的叫聲:汪汪汪~~~ 小羊的叫聲:咩咩咩~~~ 小狗的叫聲:汪汪汪~~~ 小羊的叫聲:咩咩咩~~~ ``` ``` public class Test { public static void main(String[] args) { // 生成父類對象數組,數組長度為 5 // 產生隨機數,隨機產生三種具體子類的實例 // 循環輸出,循環體中每個對象分別調用 cry() 方法 } } public class Animal { // 屬性:kind(種類) public Animal() {} // 創建帶參(kind 為參數)構造函數 // 應用封裝實現對私有屬性的get/set操作 // 創建成員方法cry():void } public class Cat extends Animal { // 重寫父類 cry } public class Dog extends Animal { // 重寫父類 cry } public class Sheep extends Animal { // 重寫父類 cry } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看