啰嗦
基礎(chǔ)學(xué)習(xí)。
設(shè)計(jì)原則(六大類其中之一)
**依賴倒置原則:**依賴抽象類,不依賴具體類。(減少耦合)
抽象類形容為父類,而子類是父類的具體類。
基類的引用
派生類包含基類和派生類,用基類引用指向派生類。通過指向派生類的基類引用訪問派生類中的基類部分。
使用
將Child child改成Parent child也是可以的,如果出現(xiàn)調(diào)用同名函數(shù)的話,調(diào)用就是調(diào)用基類中的函數(shù),而不是派生類中的函數(shù)。兩者根據(jù)實(shí)際使用而有所不同。
public class parent
{
public string name;
}
public class child:parent//相當(dāng)于child繼承于parent
{
}
class program
{
static void Main(string[] args)
{
Parent child=new Child();//將Child child改成Parent child也是可以的
child.name="lily";//擁有父類的基礎(chǔ)
}
}
共性與差異
共性:派生類都是基于基類進(jìn)行派生的。那么多個(gè)由同一個(gè)基類做的派生類會(huì)有共同的特性。
差異:派生類與派生類之間會(huì)存在不同的差異。
虛方法和多態(tài)的武器
虛方法:使用virtual的方法。基類的虛方法可在派生類使用override重寫。
多態(tài):通過指向派生類的基類引用,調(diào)用虛函數(shù),會(huì)根據(jù)引用所指向派生類的實(shí)際類型,調(diào)用派生類中的同名重寫函數(shù)。
使用
dog和cat使用到了override進(jìn)行重寫,所以不會(huì)用到基類的虛方法,并且兩者的speak也會(huì)有所不同。文章來源:http://www.zghlxwxcb.cn/news/detail-739228.html
class pet
{
virtual public void speak();
}
class dog
{
override public void speak();//重寫基類的虛方法
}
class cat
{
override public void speak();//重寫基類的虛方法
}
pet.speak();//調(diào)用基類的
dog.speak();//調(diào)用派生類
其他
- 重寫虛方法必須具有相同的可訪問性,且基類方法不能是private(派生就無法訪問)
- 不能重寫static方法或非虛方法
- 方法、屬性、索引器、事件都可以聲明為virtual或override
總結(jié)
學(xué)習(xí)記錄。
https://www.imooc.com/video/14226文章來源地址http://www.zghlxwxcb.cn/news/detail-739228.html
到了這里,關(guān)于C#學(xué)習(xí)系列之虛方法和多態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!