多态定义、多态实现、多态分类。

1.多态定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。

2.如何实现多态:C++中的多态只能通过指向基类类型的指针和引用来调用对象的虚函数来实现。

实现多态有三种方式:虚方法,抽象方法,接口。

 
虚方法:子类重写父类中的方法,对父类中的方法进行覆盖。适用情况:父类中的方法对子类来说不适用,子类通过重写该方法,覆盖了父类中的方法。

public class Person

{

public virtual void SayHello()

{

Console.WriteLine("Say hello!");

}

}

public  class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}


抽象方法:子类重写父类中的方法,父类中不对方法进行实现,在子类中进行实现,父类是抽象类。适用情况:针对同一种类型抽象出来的父类,对某些行为和属性大家都是公有的,但是这些属性和行为实现方式并不一致。

abstract  class Person

{

public abstract void SayHello();

}

class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}


接口:实现接口的类,将接口中的方法实现。适用情况:A.当多个类型不能抽象出合理的父类时,但是又要对某些行为进行多态,将公共的方法抽象到一个接口中,让不同的子类调用。

public interface IFlyable//定义一个接口,实用interface 修饰,接口名以I开头,接口中只能包括方法,且方法没有访问修饰符,方法不实现。

{

void Fly();

void Jump();

}

class Student:Person,IFlyable//当一个类继承了父类,并且实现了多个接口的时候,被继承的类必须写在继承列表的第一个位置

{

public void Fly()

{

Console.WriteLine("I can fly");

}

}

3.多态分类:
(1)动态多态常指抽象类的继承;
(2)静态多态可用泛化编程实现,使用模板可行;
(3)函数多态即重载;
(4)宏多态原因在于它只是进行对应字节调换,不会辨别变量类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值