總結: 多型是物件導向的核心.---------能夠理解為乙個方法,多種實現,
在這裡能夠用虛方法,抽象類,介面能夠實現多型
1.首先利用介面來實現多型:
介面相當於"功能,"介面能夠實現多繼承,分為 顯式實現介面和隱式實現介面 keyword為inte***ce
格式:
inte***ce 介面名
**演示樣例:(顯示實現介面)
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace inte***ce_test
}inte***ce icar
inte***ce icarcolor
}class car:icar,icarcolor //定義car類並繼承了多個介面
set}
public void run() //實現介面方法
汽車啟動!", color);
}public void stop()
汽車停下!", color);}}
}
**演示樣例:(隱式實現介面)class program
static void main()
car c=new car();
c.show(); //呼叫car的show();
icar ic=c; //將car 轉換為 icar介面
ic.show()
system.console.readline();
inte***ce
icar
void show();
class car:icar
public void show()
system.console.writeline("執行show()");
2.其次利用抽象類實現多型:
抽象類是不詳細的,定義方法時僅僅須要定義抽象方法,抽象類不能例項化
格式:public abstract class類名
//定義方法
public abstract string color //定義抽象屬性
public abstract void run(); //定義抽象方法
public abstrat void
stop();
}**演示樣例:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace abstract_test
}public abstract class car
public abstract string color //定義抽象屬性
public abstract void run();
public abstract void stop();
}public class bmw :car
set}
public override void run() //實現抽象類的抽象方法
啟動", color, name);
}public override void stop()
停止", color, name);
抽象類總結: 抽象類中能夠寫方法,也能夠定義抽象方法,在實現這個抽象類的類時,抽象方法須要實現
3.最後能夠利用虛方法來實現
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace virtual_test
//利用override重寫虛方法
car c = new car();
c.name = "bmw";
c.run();
newcar n = new newcar();
n.name = "bmw";
n.run();
console.readline();
}class car
set
}public virtual void run()
汽車跑起來", name);}}
class newcar:car //newcar 繼承自car
汽車跑起來", name);}}
}}
C 物件導向 多型
一 對於繼承自同一基類的多個不同派生類的例項,在執行時可以將它們賦值給基類型別的變數,訪問該變數的同乙個成員會根據該變數執行時型別的不同而產生不同的行為,這個特性即被稱為多型 polymorphism 多型允許以同一種方式訪問同乙個變數的成員而產生不同的行為 1.在c 中,每個型別都是多型的,因為包...
go物件導向思想 封裝 繼承 多型
go 如何實現的封裝 繼承 和多型 封裝 go中是通過結構體的方法去模擬類 package objects 通過結構體的方式去模擬類 type user struct 根據方法的首字母的大小寫去判斷是否外部訪問 func user user getbike string 繼承 我們編寫乙個使用者資訊...
C 物件導向思想(一)
相比c,c 多出來一些東西來,類定義 繼承 過載 覆蓋 類動態編譯 抽象類虛函式 模板。這些東西非常有用,但怎麼用,像我這種小白,就有些難過了,世界最遙遠的距離就是雖然學習了物件導向,可是用起來還是如同面向過程一樣粗暴 首先我們需要了解什麼是物件導向思想 物件便是我們接觸的事物,有屬性有動作。而物件...