我是靠谱客的博主 苗条百合,最近开发中收集的这篇文章主要介绍class类的继承,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入代码片## 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类的继承所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部