C#中面向东西编程机制之多态学习条记

时间:2022-01-06 08:15:13

我的理解是:同一个操纵,感化于差此外东西时,会有差此外功效,即同一个要领按照需要,感化于差此外东西时,会有差此外实现。


C#的多态包孕:接口多态,担任多态。

此中担任多态又包孕通过虚拟要领实现的多态和通过抽象要领实现的多态性

例如:基类动物都有吃的要领,但是差此外动物吃的对象就会不一样,例如狼吃肉,羊吃草,这样“吃”的这个要领就要在派生类里面从头实现以下,运行时,通过指向基类的指针,来挪用实现派生类中的要领。

接下来举例实现多态性。


1. 接口多态性

把动物“吃”的要领放到一个接口(IAnimal)里,,然后让具体的动物类(Wolf/Sheep)担任这个接口,并按照本身的需要实现这个接口。

代码实现:


代码如下:


class Program {

static void Main(string[] args) {

new Wolf().Eat();

new Sheep().Eat();

}

}

public class Wolf : IAnimal {

//多态实现

public void Eat() {

Console.WriteLine(“狼吃肉!”);

}

}

public class Sheep : IAnimal {

//多态实现

public void Eat() {

Console.WriteLine(“羊吃草!”);

}

}

//接口

public interface IAnimal {

void Eat();

}