C#面向东西(一):明确几个简单的观点作为开胃菜
C#面向东西(二):封装和担任
今天来聊聊面向东西的多态,这部分算是对照重要和核心的,很多事情2年多的措施员其实对付面向东西和多态的理解也是不到位的,此次好好总结下,理顺思路。
三、多态:有多态之前必需要有担任,只有多个类同时担任了同一个类,才有多态这样的说法。
在担任关系的前提下,实例化出差此外东西,这些东西挪用不异的要领,但是却表示出差此外行为,这就叫做多态。
在 C#语言中浮现多态有三种方法:虚要领,抽象类, 接口。
1、虚要领语法1.1什么是虚要领?
在父类中使用 virtual 关键字修饰的要领, 就是虚要领。在子类中可以使用 override 关键字对该虚要领进行重写。
Virtual要领也可以单独执行。
1.2虚要领语法父类:
public virtual 返回值类型 要领名()
{
要领体代码;
}
子类:
public override 返回值类型 要领名()
{
要领体代码;
}
例:老虎和猫担任同一个父类,实现“ 叫”虚要领
class CatType
{
public virtual void Cry()
{
Console.WriteLine("深呼吸,张开嘴巴,开始:");
}
}
class Cat:CatType
{
public override void Cry()
{
base.Cry();
Console.WriteLine("喵喵喵");
}
}
class Tiger:CatType
{
public override void Cry()
{
base.Cry();
Console.WriteLine("咆哮");
}
}
1.3.虚要领使用细节
①将父类的要领符号为虚要领, 就是在父类要领的返回值前加 virtual 关键字,暗示这个要领可以被子类重写。
②子类重写父类要领, 在子类的要领的返回值前加 override 关键字。
③父类中的虚要领, 子类可以重写, 也可以不重写。
④父类顶用 virtual 修饰的要领, 可以用于实现该要领共有的成果(好比初始化该要领), 然后在子类重写该要领时, 使用 base 关键字挪用父类中的该要领。
2、多态之里氏转换原则 2.1面向东西六大原则在使用面向东西思想进行措施设计开发过程中, 有六大原则需要注意, 六大原则在面向东西编程中的职位地方类似于“ 马列主义” “ 毛XX思想” “ *理论” 等,作为编程的“ 指导思想” 和“ 步履指南” 存在的。
六大原则如下:
①单一职责原则; ②开闭原则; ③里氏转换原则;
④依赖颠倒原则; ⑤接口断绝原则; ⑥迪米特原则;
这六大面向东西编程原则, 在后续中我们会一一介绍到, 本节课讲解第一个原则: 里氏转换原则!先界说一个子类,重写cry要领,增加monkey要领
class Cat:CatType { public override void Cry() { base.Cry(); Console.WriteLine("喵喵喵"); } public void Monkey() { Console.WriteLine("我是子类--Cat类"); } }
2.2何为里氏转换
①子类东西可以直接赋值给父类变量;
而且父类的变量cry要领也被重写了(override)。
②子类东西可以挪用父类中的成员, 但是父类东西永远只能挪用本身的成员;
CatType无法挪用monkey();
③如果父类东西中装的是子类东西, 可以将这个父类东西强转为子类东西;
//此刻方法.
CatType ct = new Cat();
ct.Cry();
ct.MKCODE();