class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound`);
}
}
const dog = new Animal('Dog');
dog.speak(); // "Dog makes a sound"
构造函数和方法
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, I'm ${this.name}`);
}
getAge() {
return this.age;
}
}
const alice = new Person('Alice', 25);
alice.sayHello(); // "Hello, I'm Alice"
静态方法和属性
class MathHelper {
static PI = 3.14159;
static square(x) {
return x * x;
}
static cube(x) {
return x * x * x;
}
}
console.log(MathHelper.PI); // 3.14159
console.log(MathHelper.square(4)); // 16
console.log(MathHelper.cube(3)); // 27
继承
基本继承
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound`);
}
}
class Dog extends Animal {
bark() {
console.log(`${this.name} barks`);
}
}
const dog = new Dog('Rex');
dog.speak(); // "Rex makes a sound"
dog.bark(); // "Rex barks"
方法重写
class Cat extends Animal {
speak() {
console.log(`${this.name} meows`);
}
}
const cat = new Cat('Whiskers');
cat.speak(); // "Whiskers meows"
super 关键字
class Bird extends Animal {
constructor(name, wingspan) {
super(name);
this.wingspan = wingspan;
}
speak() {
super.speak();
console.log(`${this.name} has a wingspan of ${this.wingspan}cm`);
}
}
const eagle = new Bird('Eagle', 200);
eagle.speak();
// "Eagle makes a sound"
// "Eagle has a wingspan of 200cm"