C 語言 多型的實現

2021-08-19 17:26:45 字數 3154 閱讀 2477

多型概念:讓乙個物件能夠表現多種狀態(型別)

實現多型的手段;1、虛方法 2、抽象類,3、介面

1、虛方法將父類的方法標記為虛方法使用關鍵字virtual,這個方法可以被子類重寫一遍

虛方法:將子類父類的方法標記為虛方法用關鍵字:virtual。這個函式可以被子類重寫override

使用需方法最主要的是找出父類

**分析

1.不適用虛方法時

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace _01201多型

;//裡式轉換法

for (int i = 0; i < per.length ; i++)

else if (per[i] is chinese)

else if (per[i] is russians)

else if (per[i] is japanese)

else

}console.readkey();}}

class person

set

}public void printinfo() //列印資訊的方法

", this.name);

}public person(string name) //有參建構函式

}class chinese : person

", this.name);

}public chinese(string name) //chinese類的建構函式顯示的呼叫父類的有參建構函式

: base(name)

}class american : person

", this.name);//列印資訊的方法

}public american(string name)//有參建構函式顯式的呼叫父類的有參建構函式

: base(name)

}class japanese : person

", this.name);

}public japanese(string name)//有參建構函式顯式的呼叫父類的有參建構函式

使用多型虛方法後可以減少**量

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace _01202多型

;//裡式轉換法

for (int i = 0; i < per.length; i++)

console.readkey();}}

class person

set

}public virtual void printinfo() //列印資訊的方法

", this.name);

}public person(string name) //有參建構函式

}class chinese : person

", this.name);

}public chinese(string name) //chinese類的建構函式顯示的呼叫父類的有參建構函式

: base(name)

}class american : person

", this.name);//列印資訊的方法

}public american(string name)//有參建構函式顯式的呼叫父類的有參建構函式

: base(name)

}class japanese : person

", this.name);

}public japanese(string name)//有參建構函式顯式的呼叫父類的有參建構函式

: base(name)

}class russians : person

", this.name);

}public russians(string name)

: base(name)

}class english : person

public override void printinfo()

",this.name);}}

}

執行結果:

虛方法的練習:老闆宣布開始工作,人事部全體成員開始工作,銷售部全體成員開始工作,技術部全體成員開始工作

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace _0120301多型虛方法練習

}public class boss

}public class personnaldepartment : boss //人事部類

}public class salesdepartment : boss //銷售部

}public class technicdepartment : boss //技術部類}}

執行結果:

C語言實現多型

c 中的多型是指 通過基類物件的指標或者基類物件的引用呼叫虛函式 表現更多派生類的特性,但根據c 多型的實現,我們發現這種方法存在一定的空間和效率的折損。不可否認,多型輕鬆解決了很多任務程中遇到的問題,這與 pure c 的解決方法比起來,更為優雅。在考慮移植性上,c 的光芒要蓋過 c 但 c 的多...

C語言實現多型

多型性是物件導向程式設計的乙個重要特徵,利用多型性可以設計和實現乙個易於擴充套件的系統。顧名思義,多型的意思是多種形態,在c 程式設計中,多型指的是 具有不同功能的函式可以用同乙個函式名,這樣可以用乙個函式名呼叫不同內容的函式。c 的多型分兩種 靜態多型性和動態多型性。c 中的函式過載和運算子過載實...

C 語言實現 C 多型

c 中的多型是指 通過基類物件的指標或者基類物件的引用呼叫虛函式 表現更多派生類的特性,但根據 c 多型的實現,我們發現這種方法存在一定的空間和效率的折損。不可否認,多型輕鬆解決了很多任務程中遇到的問題,這與 pure c 的解決方法比起來,更為優雅。在考慮移植性上,c 的光芒要蓋過 c 但 c 的...