面对对象特征之继承

1.什么是继承?

使一个类拥有另一个类全部公开的属性与行为的一种机制。

2.继承的目的

假如一个类拥有另一个类的全部行为与属性,并且这些属性与行为数量较大,同时为其他类所共享,可以将这个类定义为子类去继承另一个类,实现代码复用。

3.继承的影响

子类拥有了父类中非private的方法与属性。

4.继承的限制

  • 构造方法:任何一个类中都有一个默认的无参构造方法,一旦显式地创建了有参构造方法,默认的无参构造方法就被清除。子类的无参与有参构造方法中默认调用父类的无参构造方法,如果父类中不存在无参构造方法,编译无法通过。补充:抽象类中有构造方法,接口中没有构造方法。先初始化成员变量,后调用构造方法。
  • 单继承:在java中一个类只能通过extends关键字继承一个父类。
  • 方法重写:参考http://www.cnblogs.com/tonghun/p/7141790.html
  • 耦合度:子类继承了父类,子类对父类存在较大的依赖,父类发生变化时对子类的影响较大。

5.使用条件

因为一个类只有一次继承机会,而且继承会增加耦合度,出于维护继承机会与降低耦合度的考虑,只有在一个类与另一个类相同的方法较多时,才考虑使用继承,否则可以考虑实现接口,或者采用设计模式,如装饰者模式。

6.接口继承

一个接口可以继承多个接口,这样就拥有其他接口的抽象方法,自身不需要实现这些继承的抽象方法。

时间: 2024-11-05 21:44:25

面对对象特征之继承的相关文章

javascript面对对象编程 之继承

上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承,在javascript中没有类的概念,所有不能像c#,java语言那样,直接的用类去继承类.比如现在有比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数. function Cat(name,color){ this.name = name; this.co

16、python面对对象之类和继承

前言:本文主要介绍python面对对象中的类和继承,包括类方法.静态方法.只读属性.继承等. 一.类方法 1.类方法定义 使用装饰器@classmethod装饰,且第一个参数必须是当前类对象,该参数名一般约定为“cls",通过它来传递类的属性和方法 (不能传递实例属性和实例方法),跟实例方法的self用法相似. 2.类方法的调用 实例对象和类对象都可以调用 3.应用场景 在需要站在类的角度执行某个行为时,那么就可以定义为类方法 class Student: def __init__(self,

面对对象和prototype继承的理解总结

一些基于自己的理解和总结,如有错误望指出. 1怎么理解构造函数 构造函数:所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会指向实例对象. 构造函数每次实例化都是重新构造. <script> function Person(name,age) { this.name = name; this.age = age; this.showName = function() { alert("我

类与对象 面向对象和面向过程对比 面向对象三大特征:封装 继承 多态

 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门 面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象 1. 面向过程: 一切以事物的流程为核心. 核心是"过程"二字, 过程是指解决问题的步骤, 即, 先?干什么, 后干什么. 基于该思想编写程序就好比在编写一套流水线. 是一种机械 式的编程

39.C#--面对对象构造函数及构造函数继承使用

//一.新建Person类namespace _39.面对对象构造函数及构造函数继承使用{public class Person{//字段.属性.方法.构造函数//字段:存储数据//属性:保护字段,对字段的取值和设值进行限定//方法:描述对象的行为//构造函数:初始化对象(给对象的每个属性依次的赋值)//类中的成员,如果不加访问修饰符,默认都是privateprivate string _name; //字段public string Name //属性{get { return _name;

面对对象_面向对象的概念、类与对象的关系

面向对象的基本概念: 1.什么是面向对象 1.面向对象是一种编程思想 2.面向对象是一种思考问题的思维方式 2.建立面向对象的思维方式 1.先整体,再局部 2.先抽象,在具体 3.能做什么,再怎么做 3.如何学习面向对象 1.掌握一门面向对象语言的语法 2.熟悉面向对象的设计原则 3.熟悉面向对象的设计模式 面对对象的概述:   1.面对对象的三个特征(公认的):封装,继承,多态.(也可以说是四大特征:封装,继承,多态,抽象)   2.开发中先找对象,没有就建立一个对象,实际就是找对象,建立对象

Java入门——(2)面对对象(上)

关键词:面对对象.类..构造方法.this.static.内部类 一.面对对象的概念:把解决的问题安装一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题.其特点可概括为封装性.继承性.多态性. 1.封装性:面对对象的核心,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想. 2.继承性:主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展. 3.多态性:是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类

PHP面对对象总结

一个关于面对对象知识的问答总计:https://wenku.baidu.com/view/391eeec483c4bb4cf6ecd1ad.html 面对对象的三大特征: 1.封装 为了保护类封装了之后使用$thi->方法名来使用封装的方法或属性.相关知识链接:http://www.cnblogs.com/xishaonian/p/6146207.html 2.继承 子类继承父类的一切,特点:单继承(就是说一个子类只能继承一个父类,但是使用inface接口可以实现继承多个父类)方法重写:子类中的

《面对对象分析与设计》书摘

太久没有读这些基础概念了.关键信息摘录备忘. 二.对象模型 面向对象编程是一种实现的方法,在这种方法中,程序被组织成许多组相互劣作的对象,每个对象代表某个类的实例,而类则属于一个通过继承关系形成的层次关系. 面对对象设计是一种设计方法,包含面对对象分解的过程和一种表示法,这种表示法用于展现被设计系统的逻辑模型和物理模型.静态模型和动态模型. 面向对象分析是一种分析方法,这种方法利用从问题域的词汇表中找到的类和对象来分析需求.  对象模型要素 抽象 封装 模块化 层次结构 类型 并发 持久 抽象