28.class之子类对父类方法的重写

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      class Phone {
        // 构造方法
        constructor(brand, price) {
          this.brand = brand;
          this.price = price;
        }

 

        // 父类的成员属性
        change() {
          console.log("改变自己,改变全世界");
        }
      }

 

      // 必须有关键字extends
      class SmartPhone extends Phone {
        // 构造方法
        constructor(brand, price, color, size) {
          super(brand, price); //通过super关键字来调用父类的方法,相同于Phone.call(this,brand,price)
          this.color = color;
          this.size = size;
        }
        photo() {
          console.log("我可以拍照");
        }

 

        palyGame() {
          console.log("我可以玩游戏!");
        }

 

        change() {
          // 子类方法中不能直接去调用父类同名的方法
          // 对父类方法的重写,只需要在子类的方法里写一个与父类方法重名的方法即可,可优先调用子类的方法
          console.log("先改变自己,再改变世界");
        }
      }

 

      let apple = new SmartPhone("苹果", "12999", "灰色", "5.5inch");
      console.log(apple);
      apple.change();
      apple.photo();
      apple.palyGame();
    </script>
  </body>
</html>
posted @ 2022-01-02 16:25  问某完红  阅读(67)  评论(0编辑  收藏  举报