继承是面向对象程序设计不可缺少的机制,有了继承这个东西,可以提高代码的重用,提高代码的效率,减轻代码员的负担。

面向对象三大特性:封装、继承、多态是相辅相成的。封装为了继承,限制了父类的哪些成员被子类继承,而继承则是为了多态,使得某一父类类型的变量 因为指向的对象不同而表现不同的性质,这就是多态,多态更进一步提高了代码的质量。使得程序朝着人类习惯性思维方向发展,多态也使得扩展程序更加容易,扩展程序不再需要大面积修改原来的代码。

当然这一节讲的是继承,理解了继承才能理解多态

定义:

  为了提高代码的重用性,方便修改(修改了父类的非私有成员,便可以修改所有子类中的成员)

特性:

  子类可以继承父类所有的非私有成员(public 和 protected修饰的成员,不能继承private修饰的成员)

  虽然子类会继承所有父类非私有的成员,但是父类的private私有成员也会在子类的对象中开辟空间,只是无法在子类的方法中访问到,只能通过该子类对象中父类对象的方法,才能访问到。

几个常见的访问修饰符

  public:允许在任何地方访问

  internal:只能在本项目(程序集,一个项目编译后就是一个程序集)中访问

  protected:只能被子类继承

  privated:只能本对象使用,不能被其他类继承

DotNet中的继承,剖析面向对象中继承的意义的更多相关文章

  1. JavaScript面向对象中的继承

    1.1继承的基本概念 使用一个子类,继承另一个父类,那么子类可以自动拥有父类中的所有属性和方法,这个过程叫做继承. >>>继承的两方,发生在两个类之间. 实现继承的三种方式: 扩展O ...

  2. 实用JS系列——面向对象中的类和继承

    背景: 在最开始学习JavaScript时,我们就知道,它是一种脚本语言,也有面向对象机制.但它的面向对象继承机制是基于原型的,即Prototype.今天,我们就来找一下JS中OO的影子. 创建类 1 ...

  3. 探讨 JS 的面向对象中继承的那些事

    最近学了 JS 的面向对象,这篇文章主要是探讨 JS 的面向对象中继承的那些事. JS中继承的特点: 1.子类继承父类: 2.子类可以用父类的方法和属性 3.子类的改变可以不影响父类 下面用一个例子来 ...

  4. Python面向对象中的继承、多态和封装

    Python面向对象中的继承.多态和封装 一.面向对象的三大特性 封装:把很多数据封装到⼀个对象中,把固定功能的代码封装到⼀个代码块, 函数,对象, 打包成模块. 这都属于封装思想. 继承:⼦类可以⾃ ...

  5. JS中面向对象中的继承(常用写法)---核心部分

    1.基本概念 子类继承父类,但是不能影响父类.包括1.混合继承(构造函数+原型) 2.ES6新增class的继承. 接下来介绍,面向对象中继承的两种常用写法.即混合继承(构造函数+原型)和class继 ...

  6. JavaScript 对象的原型扩展(JS面向对象中的继承)

    <script type="text/javascript"> function person(name, age) { this._name = name; this ...

  7. python基础语法15 面向对象2 继承,多态,继承json模块中JSONEncoder,并派生出新的功能

    继承 1.什么是继承? 继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类. - 在Python中,一个子类可以继承多个父类.(面试可能会问) - 在其它语言中,一个子类只 ...

  8. python面向对象中的封装、继承、多态

    封装 可以简单的理解为隐藏一切可以隐藏的实现细节,只向外界提供简单的编程接口.我们在类中定义的方法其实就是把数据和数据的操作封装起来了,在我们创建了对象之后,只需要给对象发送一个消息(调用方法)就可以 ...

  9. JS 中通过对象关联实现『继承』

    JS 中继承其实是种委托,而不是传统面向对象中的复制父类到子类,只是通过原型链将要做的事委托给父类. 下面介绍通过对象关联来实现『继承』的方法: Foo = { // 需要提供一个 init 方法来初 ...

随机推荐

  1. SSL 证书格式普及,PEM、CER、JKS、PKCS12

    根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式: .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保 ...

  2. JAVA接口测试类

    package etcom.servlet; import java.io.BufferedReader; import java.io.InputStreamReader; import java. ...

  3. 【原】centos安装django

    一.更新系统软件包yum update -y 二.安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" yum insta ...

  4. 2.4G芯片

    一 南京中科微: Si24R1GFSK无线收发芯片    Si24R1专为低功耗无线通信应用场合设计.工作频率为2400MHz-2525MHz,共有126个1MHz带宽的信道:典型应用:有源RFID. ...

  5. Style 继承

    在应用某个主题后,想在此基础上自定义新的样式,可以使用如下方式继承样式. <Style x:Key="ListViewItemStyle" TargetType=" ...

  6. color转成image对象

    .h //颜色转换成图片 + (UIImage *)imageFromColor:(UIColor *)color; .m //颜色转换成图片 + (UIImage *)imageFromColor: ...

  7. Cosmetic Sprayer Structure Anatomy

    What shape of spray is sprayed by the cosmetic spray pump head?     Plastic Sprayers Manufacturer   ...

  8. vue element 表单多个验证时,滚动到验证提示的位置

    最近项目有个下单的过程,需要输入很多信息,每次提交都要往下滑,还要去验证,测试后发现体验也不好,element框架也没提供这种滚动方法, 不过提供了一个验证的方法 validate (两个参数:是否校 ...

  9. 3 HTML标题&元素&图像&属性&字体增强&链接&头部标签与元素

    HTML标题(heading) 通过<h1>~~~<h6>定义,每个元素代表文档中不同级别的内容. h1表示主标题,the main heading , h2,3分别表示二级. ...

  10. 1013 Battle Over Cities (25分) DFS | 并查集

    1013 Battle Over Cities (25分)   It is vitally important to have all the cities connected by highways ...