面向对象的三大特性---封装继承多态

Posted awangzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的三大特性---封装继承多态相关的知识,希望对你有一定的参考价值。

 

面向对象的三大特性---封装继承多态

首先我们来创建一个控制台程序

技术分享图片

 

新建一个父类Person

创建一个子类继承父类Person

技术分享图片

子类:

技术分享图片

main函数:

技术分享图片

输出结果:

技术分享图片

根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数。

继承的传递性

例如:

A:B,B:C,则A:C

ⅰ.继承过来之后被隐藏,有意隐藏加一个关键字"new",如果加了关键字"new",就告诉子类,父类里面的sayHi只能被隐藏,不能被覆写

 ⅱ.继承过来之后被覆写/重写,覆写需要在父类里面加"virtual",加了"virtual"之后就告诉子类继承之后,子类只能覆写"override"

 

一个子类和父类有相同的方法时,当运用子类的对象去调用该方法时,调用子类的方法,默认情况下,从父类的方法被隐藏掉,(有意隐藏,需要在子类的方法上加上New(可以加也可以不加))

  如果想覆写/重写父类的方法,需要在父类里面设置该方法为虚方法(virtual),然后子类通过override关键字去覆写。

 

子类和父类有相同的方法,默认情况下(没有被覆写),该变量调用该方法时,调用的是父类的方法(就近原则);

        当子类覆写该方法时,变量调用的是子类的方法。

继承的好处?

      假设工厂要生产三孔的插座,它首先会把模型设计出来,模型里面只是定义了方法,模型没有写方法的具体内容,把公共的方法抽象出来,做程序的时候先写了一个接口,

    让下面的类继承这个接口,这个接口并不实现具体的内容,只是定义方法名,返回的类型,具体实现什么效果是在子类里面override,所以继承的好处就是把公共的东西抽象出       来,减少了代码的重复性。

 

Ⅲ.多态 方法名相同,方法具体实现内容不同

  1. 多态分为重载(overload)和覆写(override)

      重载:方法名相同,方法里面的参数不同,参数的种类,个数或者顺序不同。

  2. 只有父类的虚方法(virtual)才能被子类覆写,子类实现覆写用关键字override,如果不加override就隐藏了父类的方法(需要加上关键字new,eg: public new static void Chinese())

  3. 静态方法不能被覆写,但可以被隐藏

  4. 静态类里面只能有静态成员

  5. 静态的成员不能带override ,virtual ,abstract

 

以上是关于面向对象的三大特性---封装继承多态的主要内容,如果未能解决你的问题,请参考以下文章

面向对象三大特性-----封装继承多态

面向对象的三大特性:继承封装多态

Python面向对象之:三大特性:继承,封装,多态。

19.Python面向对象之:三大特性:继承,封装,多态。

面向对象之:三大特性:继承(已讲),封装,多态

15:面向对象三大特性(封装继承多态)之多态