class Dog {
constructor(name:string){
// this.name = name
}
name:string = 'aaa'
run(){}
private pri() {}
protected pro () {}
readonly pro1 : number = 4
static food: string = 'ffff'
}
console.log(Dog.prototype) // constructor,run
let dog = new Dog('hehe') // name
console.log(dog)
class child extends Dog{
constructor(name:string, public color: string){
super(name)
this.color = color //this要在super之后
}
}
typescipt类覆盖了es6的类
注意点:
1.无论在ts中还是在es中,
类成员的属性都是实例属性,而不是原型属性,
类成员的方法都是实例方法。
2.ts中实例的属性必须具有初始值,或者,在构造函数中被初始化
给构造函数添加private,代表这个类,既不能被实例化,也不能被继承。
给构造函数添加protected,代表这个类,既不能被实例化,只能被继承。
public:类的所有属性默认都是public
private:私有成员,private只能在类的本身被调用,不可以被类的实例调用,也不可以被子类调用。
protected:受保护成员,只能在类或者子类中访问,而不能在类的实例中访问。
readonly:只读属性,不可以被更改,一定要被初始化
static: 类的静态成员,只能通过类名来调用,不能子类来调用,但是可以被继承
网友评论