码迷,mamicode.com
首页 > 其他好文 > 详细

继承与多态

时间:2015-03-02 23:46:32      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

继承与多态

一、继承


子类继承父类,通过在类后面加冒号来继承某个类A:B。


继承的作用:一旦形成继承关系后,子类的对象就能够使用父类中的公共属性和方法函数

㈠继承关系中的方法重写、虚(抽象)方法、虚(抽象)属性

⒈重写:
当子类中重写了跟父类同名同参数的方法之后,子类创建对象后,调用的是该子类里面的同名方法。

⒉父类变量与子类变量之间转换的规则:
⑴可以定义一个父类变量,用来存储子类对象(若有函数重写,存储了子类对象的父类变量调用方法时仍访问父类的同名方法,无法调用原先子类重写的方法以及特有的方法);

⑵父类变量里存储的子类对象不能够转成任意的子类变量,只能转换成原先的子类变量类型;

⑶直接通过父类的构造函数构建的对象, 不能存储在子类变量里。

 

⒊虚方法

抽象类:类名class前面加abstract
抽象类不能创建对象(实例),只能用作继承关系中的父类
其他用法和普通的类的继承用法相同抽象方法

虚方法:只能写在抽象类当中
必须在子类当中通过override进行重写覆盖来实现方法内容
如果不实现,那么就默认这个子类也变成了一个抽象类,
必须再在其他地方去继承实现它才可以。


虚方法的作用:如果在父类中与子类的同名方法前面加virtual, 在子类中同名方法前面的加override之后,当把子类对象存入父类类型的变量之后,通过父类变量调用的同名方法是子类的方法,实现了对父类同名方法的覆盖。

子类的方法可以与父类的方法构成重载(很少用)。

4.抽象属性:
同抽象方法一样,需要重写。
如果没有字段,属性自己也可以默认自己是字段,赋值和取值(看来,属性可以脱离字段,独当一面)。

㈡接口:

怎样添加一个接口?
添加->类->接口


一个类只能继承一个父类,但一个类可以继承多个接口
接口不能创建自己的实例,接口中不能写字段、属性


接口里的方法怎样实现?

接口里的方法不能有内容,必须要在子类里面的方法里写上内容;
定义一个接口类型的变量,存储一个子类对象;
通过该接口类型的变量,调用接口方法。

类型转换:
子类的实例可以放在转换为接口类型的变量里;
存于接口变量的子类实例可以强制转换回原先的子类类型(无法调用接口方法);
如果该类继承多个接口,那么在讲类的实例放在某个接口类型的变量中后,该实例只能转换成该子类类型变量里和该接口类型(利用强制转化),不能放在其他接口类型的变量里。

 

二、多态


继承于父类的子类有自己特有的成员。

 

小知识点:

修饰符:
protected:当前类及子类可以访问,注意子类创建的对象不能访问。

internal(类的默认访问权限):当前命名空间(类的默认命名空间)内可用。

继承与多态

标签:

原文地址:http://www.cnblogs.com/wllhq/p/4309894.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!