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>