//////
父類///
public
class
animal
public
animal()
//////
虛方法///
///public
virtual
string
shout()}
貓子類:
//////
cat子類
///
public
class
cat:animal
public
cat(
string
name)
: base
(name)
public
override
string
shout()
return
"我的名字叫"+
name +"
"+result; }}
狗子類:
//////dog子類
///
public
class
dog : animal
public
dog(
string
name)
: base
(name)
public
override
string
shout()
return
"我的名字叫"+
name +"
"+result;}}
動物叫聲大賽:
public
class
match
return
result;}}
animal相當於京劇的父親,cat和dog相當於兒子,兒子代表父親表演shout,但是cat叫出來的嘧,dog叫出來的汪。這就是不同的物件可以執行相同的動作,但要通過他們自己的實現**來執行。
注意:物件的宣告必須是父類,而不是子類,例項化的物件是子類。
多型的原理是當方法被呼叫時,無論物件是否被轉化為其父類,都只有位於物件繼承鏈最末端的方法實現會被呼叫。也就是說,虛方法是按照其執行時型別而非編譯時型別進行動態繫結呼叫。
設計模式學習筆記二 物件導向基礎一
1.類與例項 物件是乙個自包含的的實體,用一組可識別的特性和行為來標識。一切事物皆為物件,物件就是可以看到 感覺到 聽到 觸控到 嚐到 或聞到得東西。類就是具有相同的屬性和功能的物件的抽象集合。public class cat cat catmimi new cat 如上 宣告物件名為catmimi...
設計模式學習筆記二 物件導向基礎三之多型
父類 public class animal public animal 虛方法 public virtual string shout 貓子類 cat子類 public class cat animal public cat string name base name public overrid...
物件導向基礎 大話設計模式筆記
物件是自包含的實體,用一組可識別的特性和行為來標識 類是具有相同的屬性和功能的物件的抽象集合 例項化就是建立物件的過程 構造方法又稱建構函式,其實就是對類進行初始化。構造方法與類同名,無返回值,也不需要void,在new時候呼叫。方法過載提供建立同名的多個方法的能力,但這些方法需要使用不同的引數型別...