最简单的实现一个类,并用上之前讲过的``
class person{
name;
eat() {
console.log(`${this.name}吃吃吃`)
}
}
var mike = new person();
mike.name = "mike"
mike.eat()
var jason = new person()
jason.name = "jason"
jason.eat()
需要提示的是 如果name 前面加上private 实例调用name就会报错~ 例如mike.name就会报错,输出结果及报错
2.类的构造方法
class person{
constructor(name:string) {
this.name =name
}
name;
eat() {
console.log(`${this.name}吃吃吃`)
}
}
var mike = new person("mike");
mike.eat()
var jason = new person("jason")
jason.eat()
通过构造方法 对name属性进行赋值 ,可以继续简化成如下写法
class person{
constructor(public name:string) {
this.name =name
}
eat() {
console.log(`${this.name}吃吃吃`)
}
}
注意此种写法,必须加上public 不然不会自动创建属性
3.extends 继承
class person{
constructor(public name:string) {
this.name =name
}
eat() {
console.log(`${this.name}吃吃吃`)
}
}
class employee extends person {
}
var e1 = new employee("didi")
e1.eat()
继承可以继承 属性和方法 结果如下
4.super的用法
class person{
constructor(public name:string) {
this.name =name
}
eat() {
console.log(`${this.name}吃吃吃`)
}
}
class employee extends person {
constructor(name: string, code: string) {
super(name)
this.code = code
}
code: string
Worker() {
super.eat()
this.towork()
}
private towork() {
console.log("去工作")
}
}
var e1 = new employee("didi","001")
e1.Worker()
可以看到两种用法,
1.子类的构造函数,必须调用父类的super方法,否则会爆红。
2.子类方法中 可以调用父类的方法。例如super.eat()