继承、多态,学习目标:

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的方法,但是关系太紧密,不便于扩展和替换;

雇佣,灵活,便于扩展,更有利于对“多个资源”同时进行复用

深入.net(继承)的更多相关文章

  1. javaScript的原型继承与多态性

    1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...

  2. JavaScript的继承实现方式

    1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...

  3. javascript中的继承与深度拷贝

    前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...

  4. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  5. JS继承类相关试题

    题目一: //有关于原型继承的代码如下:function Person(name) {   this.name = name;}Person.prototype = {     getName : f ...

  6. JS继承之寄生类继承

    原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...

  7. JS继承之借用构造函数继承和组合继承

    根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...

  8. JS继承之原型继承

     许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...

  9. 深入浅出JavaScript之原型链&继承

    Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...

  10. 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型

    前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.

随机推荐

  1. JQuery02

    一:JQuery知识点 *:JQuery的dom操作 *:动态创建dom节点 比如动态创建表格等,在js里面进行完成. *删除节点 这里面的删除就是将其放在了一个地方,并不是真的删除,之后可以使用. ...

  2. Gson操作json

    github:https://github.com/google/gson API:http://google.github.io/gson/apidocs/ 示例对象 package present ...

  3. IBM和传统IT的沦落

    传统IT厂商沦落已经成为一种趋势.不仅仅是在中国去IOE的大背景下,在全球范围内,这些曾经盛极一时的IT大鳄也在衰落.作为一个在IBM服务了将近14年的老员工,我想浅谈一下IBM以及整个传统IT行业的 ...

  4. Wijmo 2016年蓝图

    2015年很快就过去了,这是 Wijmo 重要的一年,尤其是对 Wijmo5.脱离传统的小部件,重新写一套 JS 控件,现在看来这个决定是正确的.用 TypeScript 写 Wijmo5,意味着我们 ...

  5. Oracle数据库,内置函数小结

    1.聚合函数 count(字段) // 求非空行的数量 max(字段) // 获取最大值 sum(字段) //求和 avg(字段) // 平均值 min(字段) // 最小值 2.转换函数 to_da ...

  6. 【FFmpeg】Windows下FFmpeg调试

    为了深入了解ffmpeg的工作原理,需要阅读源代码,调试源代码.在Windows下调试ffmpeg源码,一种方法是在MinGW+Msys环境下,利用GDB进行调试:另一种是借助Eclipse进调试,其 ...

  7. GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  8. 带给您灵感的25个最新鲜的 HTML5 网站

    感谢 HTML5 带来的惊人的先进特性,在未来几年,HTML5 将会继续发挥巨大的推动作用,不仅是在 Web 应用中,网页设计领域也会有新的变革.今天,我们在这里集合了能够带给您灵感的25个最新鲜的 ...

  9. Weinre调试移动端页面

    Weinre是什么 如果我们做的是Cordova(phonegap)或其他hybird应用,当使用到原生功能时候(类似原生请求数据或页面切换时),没办法在PC chrome浏览器调试页面,一旦页面在手 ...

  10. 选中repeater表格中的一行使其变色

    //table表中点击行,选中的那一行颜色会变成浅蓝色(颜色可以自己设定) //其中sellerTable 为table的id, $("#sellerTable tbody tr" ...