面对对象语言的三大特征

面向对象语言的三大特性

 一、 封装

类是对字段,属性,方法等数据成员的封装

属性是对字段的封装

项目是对类的封装

二、 继承

父类(基类)

子类(扩展类)

C#中子类可以继承到父类

在子类的声明时,只需要在类名后加上”:”加上父类的类名,即代表此子类是从父类继承的类

: class B:A   代表B类从A类继承 A类是父类,B类是子类.B类的成员具有A类的所有public的方法及属性

 Protected 访问符,使用此访问符在父类中声明的成员,只允许在子类中访问。

 继承中的构造方法 

在实例化子类实例时会调用子类的构造方法,在调用子类构造方法前会先调用父类的构造方法。

注意:在子类构造方法调用前会先调用父类的无参构造方法。

      如果在子类的构造方法中要调用父类的有参构造方法,只需要在子类构造方法声明时,在方法后面加上“:”base(父类构造方法调用时的实参)

三、 多态

在继承链中可以使用父类的指针指向子类的实例

 子类中和父类中的方法同名同参称作方法的重写

在父类声明时,将方法前面加上virtual关键字,代表此方法为虚方法

 在子类中,可以使用new来隐藏父类中使用virtual声明的同名方法

方法被隐藏后,在使用父类指针指向子类实例时,隐藏的方法会被调用.

在子类中,可以使用override来覆盖父类中使用virtual声明的同名方法

方法被子类覆盖后,即使使用父类指针指向子类实例,仍然是子类的实现。

原文地址:https://www.cnblogs.com/luoquan/p/5066981.html