继承 和多态。。。。。
2016-04-11 00:26
232 查看
继承
继承优点:减少代码冗余,实现代码复用
继承的一些概念
1)在C#中,如果一个类后面通过冒号又跟了另一个类,那么我们就称冒号前边的类为子类,
冒号后边的类为父类。这种书写类的方式反映出来的关系就称为类的继承关系。
2)子类:派生类
父类:基类或者超类
满足is a 关系的两个类可以使用继承
例如:
学生 is a person
base
base:父类的对象
base():看成是调用父类的构造beast()
base(参数列表)父类带参构造的参数列表一致,只能出现在子类构造后边、
new子类到底发生了什么,?
new子类过程
1)从Main---->子类带参构造,但是不进子类构造
2)发现子类构造后base().调用对应的父类构造。
并且将父类构造方法执行完(进入父类构造的{},执行其中代码)
3)父类构造执行完毕,回到子类构造的{}执行代码
4)子类构造执行完毕,回到Main函数,进而将子类对象创建出来
到该步骤已经成功向内存索要了空间。子类对象已然存在了
图解
![](https://images2015.cnblogs.com/blog/903625/201604/903625-20160410221549109-1624710018.png)
没有base编辑器底层会自动调用父类的无参构造
访问修饰符
public:任何位置,包括跨程序集
intemal:在当前程序集(项目)中都可以访问
private:只能在当前类中访问(当前类的花括号中访问)
protected:只能在当前类和其子类中使用
类的访问修饰符
public
intemal(内部的)
字段的访问修饰符
public
private
方法的访问修饰符
public
private
继承的特性
单根性:一个类只能有一个直接的父类
传递性:如果一个类B继承子类A,而类C又继承类B,那么类C也可以
访问到类A中非私有你成员
多态
不同的对象,对于同一个操作,做出的响应不同
实现多态三种方法
1)在父类中通过virtual关键字定义一个虚方法
2)在子类中通过override关键字对父类中的虚方法进行重写
3)调用的时候,调用的是子类方法
继承优点:减少代码冗余,实现代码复用
继承的一些概念
1)在C#中,如果一个类后面通过冒号又跟了另一个类,那么我们就称冒号前边的类为子类,
冒号后边的类为父类。这种书写类的方式反映出来的关系就称为类的继承关系。
2)子类:派生类
父类:基类或者超类
满足is a 关系的两个类可以使用继承
例如:
学生 is a person
base
base:父类的对象
base():看成是调用父类的构造beast()
base(参数列表)父类带参构造的参数列表一致,只能出现在子类构造后边、
new子类到底发生了什么,?
new子类过程
1)从Main---->子类带参构造,但是不进子类构造
2)发现子类构造后base().调用对应的父类构造。
并且将父类构造方法执行完(进入父类构造的{},执行其中代码)
3)父类构造执行完毕,回到子类构造的{}执行代码
4)子类构造执行完毕,回到Main函数,进而将子类对象创建出来
到该步骤已经成功向内存索要了空间。子类对象已然存在了
图解
![](https://images2015.cnblogs.com/blog/903625/201604/903625-20160410221549109-1624710018.png)
没有base编辑器底层会自动调用父类的无参构造
访问修饰符
public:任何位置,包括跨程序集
intemal:在当前程序集(项目)中都可以访问
private:只能在当前类中访问(当前类的花括号中访问)
protected:只能在当前类和其子类中使用
类的访问修饰符
public
intemal(内部的)
字段的访问修饰符
public
private
方法的访问修饰符
public
private
继承的特性
单根性:一个类只能有一个直接的父类
传递性:如果一个类B继承子类A,而类C又继承类B,那么类C也可以
访问到类A中非私有你成员
多态
不同的对象,对于同一个操作,做出的响应不同
实现多态三种方法
1)在父类中通过virtual关键字定义一个虚方法
2)在子类中通过override关键字对父类中的虚方法进行重写
3)调用的时候,调用的是子类方法
相关文章推荐
- 前端模块化、构建工具
- 渲染技术
- 【追求进步】平衡二叉树
- 另类提示框
- 在centos7环境下建立MariaDB多实例
- python中的迭代与循环
- c++第二次作业
- Class.forName()用法详解
- week6:个人博客作业
- Android课程---如何用网格视图做出手机桌面APP
- 几种开源的数据库连接池
- python功能使用经验总结
- krpano 教程 - area 标签中文说明
- Eular质数筛法
- Android各版本最新分布数据
- C++实验3-4-多分段函数求值
- cas原理简介
- RandomAccessFile文件读写操作
- krpano 教程 - contextmenu右键菜单标签中文说明
- 第一篇CSDN博客