JAVA多態


 多態的理解:

  1. 多態是同一個行為具有多個不同表現形式或形態的能力。
  2. 多態就是同一個接口,使用不同的實例而執行不同操作。
  3. 多態性是對象多種表現形式的體現。

 多態的優點:

  1.消除類型之間的耦合關系

  2.可替換性

  3.可擴充性

  4.接口性

  5.靈活性

  6.簡化性

 多態存在的三個必要條件

  1.繼承

  2.重寫

  3.父類引用指向子類對象

  比如

  

1 Parent p = new Child();

 當使用多態方式調用方法是,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去調用子類的同名方法。

 

 1 package com.poly.www;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         show(new Cat()); // 以 Cat 對象調用 show 方法
 6         show(new Dog()); // 以 Dog 對象調用 show 方法
 7 
 8         Animal a = new Cat(); // 向上轉型
 9         a.eat(); // 調用的是 Cat 的 eat
10         Cat c = (Cat) a; // 向下轉型
11         c.work(); // 調用的是 Cat 的 work
12     }
13 
14     public static void show(Animal a) {
15         a.eat();
16         // 類型判斷
17         if (a instanceof Cat) { // 貓做的事情
18             Cat c = (Cat) a;
19             c.work();
20         } else if (a instanceof Dog) { // 狗做的事情
21             Dog c = (Dog) a;
22             c.work();
23         }
24     }
25 }
26 
27 abstract class Animal {
28     abstract void eat();
29 }
30 
31 class Cat extends Animal {
32     public void eat() {
33         System.out.println("吃魚");
34     }
35 
36     public void work() {
37         System.out.println("抓老鼠");
38     }
39 }
40 
41 class Dog extends Animal {
42     public void eat() {
43         System.out.println("吃骨頭");
44     }
45 
46     public void work() {
47         System.out.println("看家");
48     }
49 }

執行以上程序,輸出結果:

吃魚
抓老鼠
吃骨頭
看家
吃魚
抓老鼠

多態的實現方式

  1. 重寫
  2. 接口
  3. 抽象和抽象方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM