C#关于面对象多态例子
//主的喂狗?
class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? //我們來模擬一個主人養狗動物的例子 首先創建一個主人對象,同時主人買了條狗
??????????? //買來條狗,主人一喂,狗會吃東西
??????????? Person person = new Person();
??????????? Dog dog = new Dog();
??????????? person.feed(dog);//主人喂狗
??????????
??????? }
??? }
//?? 主人類
?class Person { //主人喂狗
?????? public void feed(Dog dog) {
?????????? dog.eat();
?????? }?
?? }
//狗類
?class Dog {
??????? //狗吃東西動作
??????? public void eat(){
??????????? Console.Write("狗吃東西"); }
???????? }
//過了幾天張三這哥們在市場上看到一只貓,又想喂貓了
?class Cat ??? { ??????
? public void eat() {??
Console.Write("貓吃東西");
??????? } ?
?? }
? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? //我們來模擬一個主人養狗動物的例子 首先創建一個主人對象,同時主人買了條狗
??????????? //買來條狗,主人一喂,狗會吃東西
??????????? Person person = new Person();
??????????? Dog dog = new Dog();
??????????? Cat cat = new Cat();
??????????? person.feed(dog);//主人喂狗
??????????? person.feed(cat);//主人喂貓
??????? }
??? }
//又沒過幾天又看到一只兔子,又想養兔了
這時候我們是不是感覺程序有點不好擴展了
我們想既然是養動物,我們為何不創建個動物類了
class Anmail
??? {
????????? //動物吃東西動作
??????? public void eat(){
???????? }
??? }
//到時候什么狗 貓 兔都繼承 Anmail類就好了
//那么主人里面的可以這么寫就好了
class Person { //主人喂狗?
?????? //主人喂動物
?????? public void feed(Anmail anmial)
?????? {
?????????? anmial.eat();
?????? }
?? }
//主程序可以這么寫了
?class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? Person person = new Person();
??????????? Anmail an= new Dog();( 養狗 養貓)?//?Anmail an= new Cat()
??????????? person.feed(an);//主人喂狗或主人喂貓?
??????? }
??? }
//寫到這里是不是稍微感覺到多態的好處了,當然這只是一個小例子
下面說下? Anmail an= new Dog()
這個就是父只向子
?
?
?
?
?
轉載于:https://www.cnblogs.com/yzenet/archive/2013/01/17/2865233.html
總結
以上是生活随笔為你收集整理的C#关于面对象多态例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle创建DBLink连接
- 下一篇: ASP.NET文件的下载