深入.net(继承)
Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
继承、多态,学习目标:
1、能够熟记定义和概念
2、能够理解其内部意义
3、能够运用到自己的编码实现中
如何进行代码的复用:
----- 自己写好了一段代码,理想状态(永远都不要再写了,直接用)
----- 当编写好一个类后,再编写其他类时,如果他们有“共同的属性”和“共同的方法”时,我们就可以考虑将其共有的部分,提取出来,便于后续的复用!
步骤:
1、创建一个新的数据容器(类)
2、将需要“复用”的属性和方法,剪切到类中(父类)
3、在将新类,在其定义语法后,使用 : 父类 的方式建立两者的关联
---- 这就是我们所说的“继承”:
继承的目的:实现“代码的复用”,新类继承了“原来一个类”,即具有原来那个类所拥有的属性和方法。
“继承”的特点及特性: ---- 被继承的类:父类、基类;继承对方的类:子类、派生类
1、子类继承父类后,具有父类所有对外公开的属性和方法
2、子类的方法中,如何使用父类资源:base.父类资源、this.父类资源(父亲的也是你)
3、但是父类无法获取“子类”自有的资源。(儿子的还是儿子的)
4、不是所有的“父类”资源都可以被子类使用:
private --- 私有的资源,只能在本类中使用,子类也无法使用。
protected --- 该类资源,只被“本家族”的对象所使用,外部无法访问。
5、“子类”继承“父类”满足: is a 关系 【子类 is a 父类】
---- 当我们的程序中,一个类,完全可以被另外一个类所代替的话!我们就说他们之间满足“里氏替换原则”【子类完全可以替代父类】
6、单根性 ---- 一个子类只能继承于一个父类
传递性 ---- 儿子可以继承父亲,孙子可以再继承儿子,且越后代的类获取的资源越多
5、子孙类在创建对象实例时,先创建其父类,再创建其后续子类。
6、 子类中bass的用法:
1、在子类的方法中,使用base调用父类的属性及方法
2、在子类的构造函数后,使用 :base()的方式,给父类传递构造参数
private |
在类中,才能被访问 |
protected |
在类中,及子孙类中,才能被访问 |
internal |
在本项目中(程序集),才能被访问 |
public |
所有人都可以访问 |
小贴士:
实现对现有“类”的复用:
方式一:继承 ----> is a 关系 -----> 张三 is a 李四(张三就说李四,具有李四的功能)
方式二:雇佣 ----> has a 关系 -----> 张三 has a 李四(张三中有一个李四,拥有了四的功能)
两种方法的对比:
继承,不仅可以用于其对外属性和方法,还可以使用其protected的方法,但是关系太紧密,不便于扩展和替换;
雇佣,灵活,便于扩展,更有利于对“多个资源”同时进行复用
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。