类的注解
class Person {
name: string;
constructor (name: string) {
this.name = name;
}
sayHi (): string {
return "Hi, " + this.name;
}
}
let person1 = new Person("zs");
继承中的super
class Animal {
name: string;
constructor (theName: string) {
this.name = theName;
}
move (m: number) {
console.log(`${this.name} move ${m}m `);
}
}
class Dog extends Animal {
constructor (name: string) {
super(name); // 这里的super是父类的构造函数
}
move (m = 10) {
console.log("wangwangwang!");
super.move(m); // 这里的super是父类
}
}
类成员的修饰符
public ( 公共属性 )
- 自身可调用
- 子类可调用
-
private ( 私有属性 )
-
protected ( 保护属性 )
自身可调用
- 子类可调用
readonly ( 只读属性 )
设置为只读,只读属性只能在声明时或构造函数内赋值。
注:该修饰符在要写在上面修饰符的后面,不能修饰方法。 ```typescript class Person { private readonly name: string, constructor (name: string) { this.name = name; } }
// ———可简写为↓————
class Person { constructor (private readonly name: string) {} }
<a name="E4Chx"></a>
## 抽象类
能够提供其他类的基类;无法创建实例;抽象方法一定要有实现。<br />关键字:abstract
```typescript
abstract class Animal {
absctract makeSound (): void; // 必须在子类中实现
move () {
console.log("dadadada");
}
}
new Animal(); // -> 报错
class Cat extends Animal {
makeSound () {
console.log("miaomiaomiao~")
}
}
class Dog extends Animal {
makeSound () {
console.log("wangwangwang~")
}
}
let cat = new Cat();
let dog = new Dog();