類的多型性

2022-09-13 12:27:14 字數 1609 閱讀 4196

//    類的多型

//    多型就是指在程式執行時,執行的雖然是乙個呼叫方法的語句,卻可以根據派生類物件的型別的不同完成方法不同的具體實現

//    當派生類從基類繼承時,它會獲得積累的所有方法,字段,屬性,和事件.派生類可以選擇:

//    1.繼承最接近的基類方法而不是重寫它

//    2.重寫基類中的虛擬成員.

//    3.定義隱藏類實現的成員的新非虛實現

//    實現多型的方法:   1.虛方法 :將父類的方法標記為虛方法,使用關鍵字virtual,此方法可以在子類中可以重寫(重寫使用關鍵字override)

//                    2.抽象類和抽象方法:如果我們不需要使用父類建立物件,它的存在只是為了供子類繼承.可以將父類寫成抽象類(關鍵字abstract)

//        將父類方法寫成抽象方法,子類中的方法仍然用關鍵字override重寫;

//                    3. 介面實現;

//    抽象類: 不需要使用基類例項化的物件;

//    虛方法: 需要使用基類例項化的物件;

//    我們選擇使用虛方法實現多型還是抽象類抽象方法實現多型,取決於我們是否需要使用基類例項化的物件

clerk myclerk = new clerk ();  //  new 建立乙個物件

projectmanager mypm = new projectmanager ();

clerk clerk = ;        //    用陣列呼叫

foreach (clerk outclerk in clerk) 

outclerk.workplan();

// 錯誤寫法      drink mymilk = new drink ();        抽象類是不允許建立例項的

drink mymilk = new milk ();        //    必須用子類來呼叫

drink mytea = new tea ();

drink  drink=;

foreach (drink outdrink in drink) 

outdrink.drink();

console.readkey ();}}

//    例項1:    職員需要有工作計畫,經理也需要有工作計畫

//    分析:  現在有乙個cleck類作為父類, projectmanager 類繼承自cleck, 因為需要父類建立的物件,所以用虛方法來實現多型

//    虛方法:

class clerk

}class projectmanager:clerk

}//    例項2:  茶可以解渴,牛奶也可以解渴;        

//     分析: 沒有基類  所以需要從新宣告乙個基類  drink;

//          tea 和 milk都是屬於drink類, 而我們需要使用milk和tea建立的物件,而根本不需要使用drink建立的物件,所以可以使用抽象類抽象方法 

// 抽象方法:

abstract class drink

}class milk:drink

}class tea:drink

}

類的多型與多型性

多型是指一類事物有多種形態 class animal def speak self print f 開口說話 動物的形態之一 人 class people animal def speak self print 呵呵呵 動物的形態之二 狗 class duck animal def speak se...

類的多型性體現

引用多型 父類的引用可以指向本類的物件 父類的引用指向了自己的子類物件.方法多型 建立本類物件時,呼叫的方法為本類方法.建立子類物件時,呼叫的方法為子類重寫方法或繼承方法.注 不能訪問子類特有的方法 多型的前提 a.類與類之間必須有關係,要麼繼承,要麼實現 implement b.要有重寫 c.父類...

74 類的多型和多型性

目錄 二 多型性 三 多型性的好處 四 小結 很多人喜歡將多型與多型性二者混為一談,然後百思不得其解,其實只要分開看,就會很明朗。多型指的是一類事物有多種形態,乙個抽象類有多個子類,因而多型的概念依賴於繼承 序列資料型別有多種形態 字串,列表,元組 動物有多種形態 人,狗,豬 動物有多種形態 人類 ...