国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Polymorphism

2019-11-14 23:45:16
字體:
供稿:網(wǎng)友
Polymorphism

  多態(tài)定義(百度百科):多態(tài)(Polymorphism)按字面的意思就是“多種狀態(tài)”。在面向?qū)ο笳Z言中,接口的多種不同的實現(xiàn)方式即為多態(tài)。引用Charlie Calverts對多態(tài)的描述

——多態(tài)性是允許你將父對象設(shè)置成為和一個或更多的他的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當前賦值給它的子對象的特性以不同的方式運作(摘自“Delphi4 編程技術(shù)

內(nèi)幕”)。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。多態(tài)性在Object Pascal和C++中都是通過虛函數(shù)(Virtual Function) 實現(xiàn)的。

  用我今天學(xué)到的方法來說,多態(tài)(Polymorphism)就是父類型的引用可以指向子對象。(“子類就是父類”) 

interface Animal {   void shout(); // 定義抽象shout()方法}// 定義Cat類實現(xiàn)Animal接口class Cat implements Animal {// 實現(xiàn)shout()方法  public void shout() {    System.out.

1. 多態(tài):父類型的引用可以指向子對象。

2. Parent p = new Child();當使用多態(tài)方式調(diào)法時,首先檢查父類中是否有 sing() sing() sing()方法, 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 如果沒有則編譯錯誤;,再去調(diào)用子類的 sing()方法。

3.向上類型轉(zhuǎn)換( 向上類型轉(zhuǎn)換( upcastupcastupcastupcast upcast):比如說將 ):比如說將 Cat Cat類型轉(zhuǎn)換為 Animal Animal 類型 ,即將子轉(zhuǎn)換為父類型。

4.向下類型轉(zhuǎn)換( downcastdowncastdowncastdowncastdowncastdowncast downcast):比如將 Animal Animal 類型轉(zhuǎn)換為 類型轉(zhuǎn)換為 Cat Cat類型 。即將父轉(zhuǎn)換為子類型。對于向下,必須要顯式指定 轉(zhuǎn)換為子類型。對于向下,必須要顯式指定 轉(zhuǎn)換為子類型。對于向下,必須要顯式指定 (必須要使用強制類型 )

 1 package polymorphism; 2  3 public abstract class Person { 4     public abstract void say(); 5 } 6  7 package polymorphism; 8  9 public class Chinese extends Person {10 11     @Override12     public void say() {13         System.out.println("Chinese say chinses");14     }15 16 }17 18 package polymorphism;19 20 public class American extends Person {21 22     @Override23     public void say() {24         System.out.println("American say English");25     }26 27 }28 29 package polymorphism;30 31 public class Polymorphism {32     static void doaction(Person person)33     {    34         person.say();35     }36     37     public static void main(String[] args) {38         Person chinese=new Chinese();39         Person american=new American();40         doaction(chinese);41         doaction(american);42     }43 }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安阳县| 舟曲县| 巴林右旗| 福安市| 巴林右旗| 隆尧县| 绥江县| 济阳县| 澜沧| 德令哈市| 尚义县| 伊宁县| 华蓥市| 东乡县| 临猗县| 安康市| 恩施市| 卓资县| 光山县| 金山区| 嫩江县| 福海县| 红桥区| 乌苏市| 林芝县| 酉阳| 疏勒县| 马边| 会东县| 名山县| 阳江市| 宜丰县| 赣州市| 横峰县| 林西县| 湘阴县| 张北县| 定陶县| 桦川县| 乌兰浩特市| 密云县|