当前位置: 首页 > article >正文

类与ES6类之间的继承

前言

● 下面是之前学习ES6 classes的代码

class PersonCl {
  constructor(fullName, birthYear) {
    this.fullName = fullName;
    this.birthYear = birthYear;
  }

  calcAge() {
    console.log(2037 - this.birthYear);
  }

  greet() {
    console.log(`你好${this.fullName}`);
  }

  get age() {
    return 2037 - this.birthYear;
  }

  set fullName(name) {
    if (name.includes(' ')) this._fullName = name;
    else alert(`${name} is not a full name!`);
  }

  get fullName() {
    return this._fullName;
  }

  //静态方法
  static hey() {
    console.log('哈喽!');
  }
}

● 和之前一样,我们创建一个学生的类继承Personcl,并且学生也有自己独特的属性

class StudentCl extends PersonCl {}

const ITshare = new StudentCl('IT share', 2001);

我们即使没有写任何的构造函数,也可以直接继承父类

在这里插入图片描述

● 现在我们尝试写构造函数来给学生赋予新的属性,并且可以让学生继承父类的方法

class StudentCl extends PersonCl {
  constructor(fullName, birthYear, course) {
    //总是需要首先书写
    super(fullName, birthYear);
    this.course = course;
  }
}

const ItShare = new StudentCl('IT share', 2001, '计算机科学与技术');
console.log(ItShare);

在这里插入图片描述

● 可以像上一章一样再学生类中添加新的方法

class StudentCl extends PersonCl {
  constructor(fullName, birthYear, course) {
    //总是需要首先书写
    super(fullName, birthYear);
    this.course = course;
  }
  introduce() {
    console.log(`我的名字叫${this.fullName},我的专业是${this.course}`);
  }
}

const ItShare = new StudentCl('IT share', 2001, '计算机科学与技术');
ItShare.introduce();

在这里插入图片描述

● 当然,父类中的计算年龄的方法也同样适用

class StudentCl extends PersonCl {
  constructor(fullName, birthYear, course) {
    //总是需要首先书写
    super(fullName, birthYear);
    this.course = course;
  }
  introduce() {
    console.log(`我的名字叫${this.fullName},我的专业是${this.course}`);
  }
}

const ItShare = new StudentCl('IT share', 2001, '计算机科学与技术');
ItShare.introduce();
ItShare.calcAge();

在这里插入图片描述


http://www.kler.cn/a/285149.html

相关文章:

  • 大语言模型在序列推荐中的应用
  • R语言机器学习与临床预测模型69--机器学习模型解释利器:SHAP
  • WorkFlow源码剖析——Communicator之TCPServer(下)
  • 力扣 653. 两数之和 IV 二叉树/binary-tree two-sum IV
  • vue+Leaflet.PM插件实现创建和编辑几何图形(点、线、面、圆等)
  • 机器学习———特征工程
  • 叶斯神经网络(BNN)在训练过程中损失函数不收敛或跳动剧烈可能是由多种因素
  • 全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型
  • P02-Java流程控制基本结构
  • codetest
  • Linux下递归设置目标目录及其子目录和文件的权限
  • Qt/C++地址转坐标/坐标转地址/逆地址解析/支持百度高德腾讯和天地图
  • 项目策划书六度自由双足机器人
  • WHAT - 通过 react-use 源码学习 React(Animations 篇)
  • Qt QTableWidget可编辑设置,设置部分可编辑
  • 线性表之静态链表
  • Jenkins发邮件功能如何配置以实现自动化?
  • 推理引擎测试-算力共享:test_inference_engine
  • 力扣68.文本左右对齐
  • 18043 找出3个数中最大的数
  • Datawhale x李宏毅苹果书入门 AI夏令营 task03学习笔记
  • 数据结构——单向链表
  • 五、实现随机地图
  • 【STM32】通用定时器TIM(输出比较)
  • 【sqlite3】MySQL8转sqlite3需要对sql做的一些处理
  • PyCharm 自定义字体大小