啰嗦
基础学习。
设计原则(六大类其中之一)
**依赖倒置原则:**依赖抽象类,不依赖具体类。(减少耦合)
抽象类形容为父类,而子类是父类的具体类。
基类的引用
派生类包含基类和派生类,用基类引用指向派生类。通过指向派生类的基类引用访问派生类中的基类部分。
使用
将Child child改成Parent child也是可以的,如果出现调用同名函数的话,调用就是调用基类中的函数,而不是派生类中的函数。两者根据实际使用而有所不同。
public class parent
{
public string name;
}
public class child:parent//相当于child继承于parent
{
}
class program
{
static void Main(string[] args)
{
Parent child=new Child();//将Child child改成Parent child也是可以的
child.name="lily";//拥有父类的基础
}
}
共性与差异
共性:派生类都是基于基类进行派生的。那么多个由同一个基类做的派生类会有共同的特性。
差异:派生类与派生类之间会存在不同的差异。
虚方法和多态的武器
虚方法:使用virtual的方法。基类的虚方法可在派生类使用override重写。
多态:通过指向派生类的基类引用,调用虚函数,会根据引用所指向派生类的实际类型,调用派生类中的同名重写函数。
使用
dog和cat使用到了override进行重写,所以不会用到基类的虚方法,并且两者的speak也会有所不同。文章来源:https://www.toymoban.com/news/detail-739228.html
class pet
{
virtual public void speak();
}
class dog
{
override public void speak();//重写基类的虚方法
}
class cat
{
override public void speak();//重写基类的虚方法
}
pet.speak();//调用基类的
dog.speak();//调用派生类
其他
- 重写虚方法必须具有相同的可访问性,且基类方法不能是private(派生就无法访问)
- 不能重写static方法或非虚方法
- 方法、属性、索引器、事件都可以声明为virtual或override
总结
学习记录。
https://www.imooc.com/video/14226文章来源地址https://www.toymoban.com/news/detail-739228.html
到了这里,关于C#学习系列之虚方法和多态的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!