ts的定义类
创建实例对象,实例对象触发构造函数,并且传递参数,构造函数接受参数后并且赋值
class Person {
name: string;//定义了属性
constructor(name: string) {//构造函数 实例化类的时候,触发该函数
this.name = name;
}
run(): void {
console.log(this.name);
}
}
let p = new Person("张三");//这边传递参数,实例化类后,触发构造函数,然后构造函数,接受传递过来的参数,进行赋值
p.run();//张三
ts的继承
1:通过 extends 来继承父类
2:通过 super 来初始化父类的构造函数 并且传递参数
class Person {
name: string;
constructor(name: string) {
this.name = name;
}
run(): string {
return `${this.name}在跑步`
}
}
// let p = new Person("张三");
// console.log(p.run());//张三在跑步
//Good类来继承Person类
class Good extends Person {
constructor(name: string) {
super(name);//初始化父类的构造函数
}
}
let g = new Good("麻子");
console.log(g.run());//麻子在跑步
修饰符
可以看到,上述的形式跟ES6十分的相似,typescript在此基础上添加了三种修饰符:
- 公共 public:可以自由的访问类程序里定义的成员
- 私有 private:只能够在该类的内部进行访问
- 受保护 protect:除了在该类的内部可以访问,还可以在子类中仍然可以访问
私有修饰符
只能够在该类的内部进行访问,实例对象并不能够访问
并且继承该类的子类并不能访问,如下图所示:
受保护修饰符
跟私有修饰符很相似,实例对象同样不能访问受保护的属性,如下:
有一点不同的是 protected 成员在子类中仍然可以访问