继承 和多态。。。。。

继承

继承优点:减少代码冗余,实现代码复用

继承的一些概念

1)在C#中,如果一个类后面通过冒号又跟了另一个类,那么我们就称冒号前边的类为子类,

冒号后边的类为父类。这种书写类的方式反映出来的关系就称为类的继承关系。

2)子类:派生类

     父类:基类或者超类

满足is a 关系的两个类可以使用继承

例如:

学生 is a person

base

base:父类的对象

base():看成是调用父类的构造beast()

base(参数列表)父类带参构造的参数列表一致,只能出现在子类构造后边、

new子类到底发生了什么,?

new子类过程

1)从Main---->子类带参构造,但是不进子类构造

2)发现子类构造后base().调用对应的父类构造。

并且将父类构造方法执行完(进入父类构造的{},执行其中代码)

3)父类构造执行完毕,回到子类构造的{}执行代码

4)子类构造执行完毕,回到Main函数,进而将子类对象创建出来

到该步骤已经成功向内存索要了空间。子类对象已然存在了

图解

 

 

没有base编辑器底层会自动调用父类的无参构造


访问修饰符
public:任何位置,包括跨程序集
intemal:在当前程序集(项目)中都可以访问
private:只能在当前类中访问(当前类的花括号中访问)
protected:只能在当前类和其子类中使用
类的访问修饰符
public
intemal(内部的)
字段的访问修饰符
public
private
方法的访问修饰符
public
private

继承的特性

单根性:一个类只能有一个直接的父类

传递性:如果一个类B继承子类A,而类C又继承类B,那么类C也可以

访问到类A中非私有你成员

多态

不同的对象,对于同一个操作,做出的响应不同

实现多态三种方法

1)在父类中通过virtual关键字定义一个虚方法

2)在子类中通过override关键字对父类中的虚方法进行重写

3)调用的时候,调用的是子类方法

 

posted on 2016-04-11 00:26  萧瑟的风  阅读(148)  评论(0编辑  收藏  举报

导航