// 面向对象三大特性: 封装、继承、多态
// 一、封装
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return ` ${this.x}${this.y} `;
}
}
const sum = new Point(7,8)
console.log(sum.toString()) // 78
console.log(typeof Point) // function
// 二、继承 extends 继承父类
class NewPoint extends Point {
toNum() {
return +this.x+this.y
}
}
const sum1 = new NewPoint(9,9)
console.log(sum1.toNum()) // 18
console.log(sum1.toString()) // 99
// 三、多态
class Points extends Point {
constructor(x,y) {
// super() 初始化this
super(x,y)
console.log(this.x,this.y)
}
toString(){
return `${super.toString()}`
}
}
const sum2 = new Points(7,77)
console.log(sum2.toString(7,77))
console