extends 继承
class Animal {
move() {
console.log("走路");
}
}
class Dog extends Animal {
name = "二哈";
bark() {
console.log("汪汪");
}
}
const d = new Dog();
d.move();
d.bark();
implements
使用implements后类中必须有接口中的属性和方法
interface Singable {
sing(): void;
}
class Person implements Singable {
sing(): void {
console.log("继承Singable");
}
}
public 公开:所有成员可访问(默认为public)
protected 受保护:内部成员及子类可访问
private 私有的:只有内部成员可访问
class Animal {
public name:string
protected move() {
console.log("走路");
}
private age:number
run(){
this.move()
this.age=20
console.log('跑起来');
}
}
class Dog extends Animal {
name = "二哈";
bark() {
console.log("汪汪");
this.move()
}
}
const d = new Dog();
d.run();
d.name='修狗';
readonly: 表示只读,用来防止在构造函数之外对属性进行赋值(只能修饰属性,不能修饰方法)
class Person {
// 如果不添加类型age会是字面量类型
readonly age: number = 18;
constructor(age: number) {
this.age = age;
}
}
// 接口中使用readonly
interface Iperson {
readonly name: string;
}
let obj: Iperson = {
name: "jiom",
};