类与ES6类之间的继承

简介: 类与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('哈喽!');
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
● 和之前一样,我们创建一个学生的类继承Personcl,并且学生也有自己独特的属性

class StudentCl extends PersonCl {}

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

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

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

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

const ItShare = new StudentCl('IT share', 2001, '计算机科学与技术');
console.log(ItShare);
1
2
3
4
5
6
7
8
9
10

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

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();
1
2
3
4
5
6
7
8
9
10
11
12
13

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

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();
1
2
3
4
5
6
7
8
9
10
11
12
13
14

相关文章
|
6月前
|
C++
C++程序中的继承与组合
C++程序中的继承与组合
67 1
|
2月前
es5 类与继承
es5 类与继承
12 0
|
3月前
|
Java
继承与组合的区别
【8月更文挑战第22天】
34 0
|
6月前
|
JavaScript 前端开发
ES6如何声明一个类?类如何继承?
ES6如何声明一个类?类如何继承?
42 0
|
6月前
|
C++
52继承与组合
52继承与组合
26 0
ES5的继承和ES6的继承有什么区别
ES5的继承和ES6的继承有什么区别
63 0
2.【类的组合(在一个类中定义一个类)】
2.【类的组合(在一个类中定义一个类)】
46 0
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
接口vs抽象类、继承vs组合,他们之间有啥关系
接口vs抽象类、继承vs组合,他们之间有啥关系