ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

你不知道的JS系列上( 43 ) - JS 类的继承

2020-04-04 18:02:32  阅读:288  来源: 互联网

标签:console log engines 继承 子类 43 JS ignition Vehicle


在面向类的语言中,可以先定义一个类,然后定义一个继承前者的类。后者通常被称为 “子类”,前者通常被称为 “父类”。这些术语显然是类比父母和孩子。

 

定义好一个子类之后,相对于父类来说它就是一个独立并且完全不同的类。子类包含父类行为的原始副本,但是也可以重写所有继承的行为甚至定义新行为

 

思考下面关于类继承的代码 Vehicle 和 Car
class Vehicle {
  constructor() {
    this.engines = 1
  }  

  ignition () {
    console.log('Turning on my engine');
  }

  drive () {
    this.ignition();
    console.log('Steering and moving forward!')
  }
}

class Car extends Vehicle {
  constructor() {
    super()
    this.wheels = 4
  }

  drive () {
    this.ignition()
    console.log('Rolling on all ', this.wheels, ' wheels')
  }
}

class SpeedBoat extends Vehicle {
  constructor() {
    super();
    this.engines = 2
  }

  ignition () {
    console.log('Turning on my ', this.engines, ' engines.');
  }

  pilot() {
    this.ignition();
    console.log('Speeding through the water with ease!')
  }
}

我们通过定义 Vehicle 类来假设一种发动机,一种点火方式,一种驾驶方式。这个类是一个抽象的概念。接下来定义了两类具体的交通工具:Car 和 SpeedBoat。它们都从 Vehicle 继承了通用的特性并根据自身类别修改了某种特性。汽车需要 4 个轮子,快艇需要 2 个发动机,因此它必须启动 2 个发动机的点火装置

 

标签:console,log,engines,继承,子类,43,JS,ignition,Vehicle
来源: https://www.cnblogs.com/wzndkj/p/12632945.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有