您的位置:首页 > 编程语言 > C#

C#的多态特性

2015-08-04 11:15 344 查看
多态是面向对象三大特性之一

什么是多态呢?

多态就是让一个对象表现出多种状态(类型);

什么是多种状态?

多种状态就是能够实现多种功能,比如说一个人他专长原子弹,但是他也会吃饭,睡觉等基本技能,而这些基本技能就可以相当于他在实现这些技能时的多种状态,因此多态是需要建立在继承之上的;

那么实现多态有什么好处呢?

1、减少代码冗余;

2、增强了程序的可扩展性;

那么怎么才能够实现多态的呢?

1、虚方法;

2、抽象类;

3、接口;

怎样使用虚方法实现多态?

1、使用关键字Virtual对父类所需要被继承的方法进行修饰,表示这个方法为虚方法,能够被子类重写;

2、子类重写被Virtual修饰的方法,并在重写的方法返回值前加上override;

虚方法常用于父类拥有自己的独特行为或者父类需要被实例化的情况;

那么当父类的行为不明确应该怎么实现多态呢?

这时就需要使用抽象类去实现多态了;

1、抽象类是被abstract关键字修饰的,抽象类既可以有抽象成员也可以有非抽象成员;

2、子类继承了抽象类就必须要重写父类中所有的抽象成员,所以抽象类中的抽象成员访问权限不能为private;

3、抽象方法是不能够被实现的(就是说,抽象方法不能够有方法体);

当一个子类需要同时拥有多个父类中的方法,但是继承具有单根性,那怎么办呢?

此时就需要使用接口去让子类去实现,使用接口去实现多态;

1、接口是被interface关键字修饰的,接口成员的默认修饰符是public;

2、子类实现一个接口就必须实现这个接口中的所有成员(注意不是重写,不需要有override,是单纯的将方法实现);

3、接口中的方法不能够有方法体,方法仅有返回值类型,方法名,参数列表;

4、实现接口中的成员分为普通实现和显式实现,后者用于解决方法的重名问题,显示实现就是在子类中进行如下语法的实现:  返回值类型  接口名.接口方法(){}
, 普通实现就是将接口中的方法写出方法体就行了;

通过以上三种方法就能够基本上实现各种情况的多态~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 多态