概述
在这里插入代码片
## class类的继承
1.Class 可以通过 extends 关键字实现继承
class Point {
}
class ColorPoint extends Point {
}
上面代码定义了一个ColorPoint类,该类通过extends关键字,继承了Point类的所有属性和方法。
super关键字,表示父类的构造函数,用来新建父类的this对象。
class fruit {
constructor(price, weight) {
this.price = price;
this.weight = weight
}
total(cont) {
return cont * this.price * this.weight;
}
}
class apple extends fruit {
constructor(price, weight) {
super(price, weight) //父类的构造函数
}
total(cont) {
return super.total(cont)//父类的tatal方法
}
}
子类必须在constructor方法中调用super方法,否则新建实例时会报错
class Point { /* ... */ }
class ColorPoint extends Point {
constructor() {
}
}
let cp = new ColorPoint(); // ReferenceError
案例:求各种水果的价钱
class fruit {
constructor(price, weight) {
this.price = price;
this.weight = weight;
}
total() {
return this.price * this.weight;
}
}
class Apple extends fruit {
constructor(price, weight) {
super(price, weight) //
}
}
class Banner extends fruit {
constructor(price, weight) {
super(price, weight)
}
}
class Bear extends fruit {
constructor(price, weight) {
super(price, weight)
}
}
const app = new Apple(10, 10);
const banner = new Banner(10, 10);
const bear = new Bear(10, 10);
console.log(app.total() + banner.total() + bear.total());
总结: 1.Class 可以通过extends关键字实现继承
2.它在这里表示父类的构造函数,用来新建父类的this对象。
3.子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。如果不调用super方法,子类就得不到this对象。
4.ColorPoint继承了父类Point,但是它的构造函数没有调用super方法,导致新建实例时报错。
最后
以上就是苗条百合为你收集整理的class类的继承的全部内容,希望文章能够帮你解决class类的继承所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复