1.声明类
class Person {}
2.声明类属性(静态属性,及只读属性)
class Person {
// 声明类下的属性(能读能改)
name:string = '钢弹'
// 只读属性(只能读不能改)
readonly name:string = '钢弹'
// 声明类的静态属性(可读可改)通常搭配readonly,且放在static前面
static age:number = 3
}
// 调用类下的属性
const person = new Person()
console.log(person.name)
// 调用类的静态属性
console.log(Person.age)
3.类的方法
// 实例方法
sayHello () {
console.log('我是实例方法,需要创建实例对象调用')
}
// 注意:调用实例方法
let person = new Person()
person.sayHello()
// 类方法
static holdHello () {
console.log('我是静态方法,需要类直接调用')
}
// 注意:调用类方法
Person.holdHello()
4.构造函数的使用
构造函数会在对象被创建的时候调用
5.继承(方法重新和新增)
class Animal {
name:string
age:number
sayHello(){
console.log('动物在叫')
}
constructor(name:string,age:number){
this.name = name
this.age = age
}
}
class Cat extends Animal{
sayHello(){
// super.sayHello() // 只调用了父类的sayHello方法
console.log('子类重写了父类的方法,叫做方法重写')
}
run(){
console.log('子类新增了方法可以正常使用')
}
}
// 使用子类
const cat = new Cat('钢弹',10)
console.log(cat.sayHello())
6. super的理解(只父类)
子类重写了构造方法,那么就必须用super调用一下父类的方法
7.抽象类和抽象方法的使用
1.抽象类只能被继承,不能new;
2.抽象方法只能在抽象类内写,写必须被子类重写;
3.abstract 修饰