面向对象系列一(继承)

面向对象的三大特性——继承、封装、多态性。

我们先来说说继承。继承,是子类对父类的沿用,父类的除私有(private)部分外,都可以归子类所继承。

继承的关系:子类=继承类=派生类,父类=基类

对父类进行继承的子类被称为继承类。又可描述为父类派生而产生的子类为派生类。

被子类继承的父类被称为基类

继承的两个特性:单一性、传递性。

单一性:说的是单继承,即子类直接继承只能继承于一个父类。

传递性:继承可以传递,即继承类又可以成为其他类的基类。

继承的作用:实现代码(功能的)可重用、可扩充。

继承的实现:

class Demo1
    {
        void show1(){}
        void show2(){}
    }

class Demo2
    {
        void show1(){}
        void show2(){}
    }

根据继承的其中一个作用,正是对代码的复用。通过观察上面的代码,发现Demo1类和Demo2类都具有show1属性,所以可以使用继承。

class Demo
    {
        void show1(){}
  }
class Demo1:Demo
   {
        void show2(){}
    }

class Demo2:Demo
    {
        void show2(){}
    }

这时Demo1、Demo2都具有了show1()这个属性。

你可能会说就这么几行代码,我不怕麻烦,直接写写了事了。但实际,问题远没有这么简单,在较大程序中,相同的内容很多,很多功能需要重复使用。如果写的时候,你说复制粘贴就好,不怕麻烦,但致命的问题在后面。任何程序都需要维护,维护就可能修改,如果不用继承,那么修改将成为无休止的痛。

面向对象系列一(继承)

时间: 2024-08-28 19:43:57

面向对象系列一(继承)的相关文章

javascript面向对象系列第三篇——实现继承的3种形式

前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.开宗明义,继承是指在原有对象的基础上,略作修改,得到一个新的对象.javascript主要包括类式继承.原型继承和拷贝继承这三种继承方式.本文是javascript面向对象系列第三篇——实现继承的3种形式 类式继承 大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,如new和instanceof.不过在后来的ES6中新增了一些元素,比如class关键字,但这并不

javascript面向对象系列5——知识点(原型和原型链)

基本概念 [原型链]每个构造函数都有一个对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.那么,如果原型对象等于另一个原型的实例,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针.如果另一个原型又是另一个原型的实例,那么上述关系依然成立.如此层层递进,就构成了实例与原型的链条. [原型对象]这个对象包含可以由特定类型的所有实例共享的属性和方法.所有引用类型默认都继承了Object,而这个继承也是通过原型链实现

面向对象系列三(多态)

面向对象的多态,我们先用生活中的多态来理解.大学的校园四月,是社团活动最紧忙的一个月.届时,学校的相关管理部门会对各社团上交的"社团活动策划案"进行审批后下发.以我曾参加的一个话剧社作为例子,社长接到审批的文书后,会对整个社团组织内部人员进行职权分工,编剧部.后勤部.外联部.秘书部.文艺部所有部门各有分工,分头积极准备工作,大家为了完成共同一部话剧热火朝天地干了起来. 这里审批的"社团活动策划案"同意办活动(一条命令),接到审批文书,来到"社长"

JavaScript面向对象之类的继承

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Lua面向对象----类、继承、多继承、单例的实现

(本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&utm_medium=referral lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模拟类也并不困难. lua中,面向对象是用元表这个机制来实现.

javascript面向对象系列第四篇——选项卡的实现

前面的话 面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它.本文将用面向对象的技术来制作一个简单的选项卡 图示说明 由图示结果看到,这是一个非常简单的选项卡.三个控制按钮利用点击事件分别控制三张不同的选项卡.选项卡用文字和背景颜色区分,控制按钮用轮廓outline区分 HTML代码 [1]使用行间样式来引入CSS的扩展性不高,需要根据实际情况谨慎使用 [2]在a标签中使用javascript:;来阻止默认的页面跳转行为 [3]给最外层div元素设置id属

C++ Primer 学习笔记_31_面向对象编程(2)--继承(二):继承与构造函数、派生类到基类的转换 、基类到派生类的转换

C++ Primer 学习笔记_31_面向对象编程(2)--继承(二):继承与构造函数.派生类到基类的转换 .基类到派生类的转换 一.不能自动继承的成员函数 构造函数 拷贝构造函数 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化调用基类构造函数完成(如果没有给出则默认调用默认构造函数). 派生类的构造函数需要给基类的构造函数传递参数 #include <iostream

C++ Primer学习笔记32_面向对象编程(3)--继承(三):多重继承、虚继承与虚基类

C++ Primer学习笔记32_面向对象编程(3)--继承(三):多重继承.虚继承与虚基类 一.多重继承 在C++语言中,一个派生类可以从一个基类派生,称为单继承:也可以从多个基类派生,称为多继承. 多重继承--一个派生类可以有多个基类 class <派生类名> : <继承方式1> <基类名1>,<继承方式2> <基类名2>,... { <派生类新定义成员> }; 可见,多继承与单继承的区别从定义格式上看,主要是多继承的基类多于一个

面向对象系列二(封装)

只需要最简单的操作就能实现一系列复杂的功能,是做一个个技术攻克的目的.一台精密仪器,一架家用电器,一个小米手机,这些可能我们都在用,或者用过.它们的内部都无比的复杂,使用了各种各样的配件,运用了极多的原理和知识.我们在使用的时候都具有相同的感受:简单.方便.太好了!面对原本复杂的东西,我们却能通过简单介绍就能运用自如,甚至有的能无师自通,这都为什么?这就用到了面向对象的封装性. 面向对象的封装性就是将复杂的处理封装在"盒子"的内部,只凭借装外壳的少量的按钮或键盘就能轻松实现功能.哦,原