typescript类,继承和修饰符
程序员文章站
2022-03-05 09:17:11
...
1.类的定义
/类的定义
class Person {
name: string; //默认是public修饰符
//构造函数
constructor(name: string) {
this.name = name;
}
//方法 无返回值
run(): void {
console.log(this.name);
}
work(): string {
return `我是${this.name}`;
}
}
let p = new Person("张三"); //实例化
p.run(); //调用run方法
console.log(p.work()); //调用work方法
2.继承
//类的定义
class Person {
name: string; //默认是public修饰符
//构造函数
constructor(name: string) {
this.name = name;
}
//方法 无返回值
run(): void {
console.log(this.name);
}
work(): string {
return `我是${this.name}`;
}
}
let p = new Person("张三"); //实例化
p.run(); //调用run方法
console.log(p.work()); //调用work方法
class Web extends Person {
age: number; //子类自己的属性
constructor(name: string, age: number = 20) {
super(name);
this.age = age;
}
//子类的同名方法优先级较高,但是方法类型要一样
work(): string {
return `子类:${this.name}`;
}
wk(): void {
console.log(this.age);
}
}
let w = new Web("子", 100); //不赋值默认是20
console.log(w.work()); //结果是子类:子
w.wk(); //结果是100
3.修饰符
// public 默认
//类的定义
/*修饰符
* public 当前类 子类 类外面都可以访问
* protected 当前类 子类可以访问 但是类外面不能访问
* private 当前类可以访问 子类和类外面不能访问
*/
class Person {
name: string; //默认是public修饰符
//构造函数
constructor(name: string) {
this.name = name;
}
//方法 无返回值
run(): void {
console.log(this.name);
}
work(): string {
return `我是${this.name}`;
}
}
let p = new Person("张三"); //实例化
console.log(p.name); //结果是张三
class Web extends Person {
age: number; //子类自己的属性
constructor(name: string, age: number = 20) {
super(name);
this.age = age;
}
//子类的同名方法优先级较高,但是方法类型要一样
work(): string {
return `子类:${this.name}`;
}
wk(): void {
console.log(this.age);
}
}
let w = new Web("子", 100); //不赋值默认是20
console.log(w.name); //结果是子
// protected
//类的定义
/*修饰符
* public 当前类 子类 类外面都可以访问
* protected 当前类 子类可以访问 但是类外面不能访问
* private 当前类可以访问 子类和类外面不能访问
*/
class Person {
protected name: string; //这边是protected修饰符
//构造函数
constructor(name: string) {
this.name = name;
}
//方法 无返回值
run(): void {
console.log(this.name);
}
work(): string {
return `我是${this.name}`;
}
}
let p = new Person("张三"); //实例化
console.log(p.name); //这边ts会提示错误
class Web extends Person {
age: number; //子类自己的属性
constructor(name: string, age: number = 20) {
super(name);
this.age = age;
}
//子类的同名方法优先级较高,但是方法类型要一样
work(): string {
return `子类:${this.name}`;
}
wk(): void {
console.log(this.age);
}
}
let w = new Web("子", 100); //不赋值默认是20
console.log(w.name); //这边ts会提示错误
// private 私有的
//类的定义
/*修饰符
* public 当前类 子类 类外面都可以访问
* protected 当前类 子类可以访问 但是类外面不能访问
* private 当前类可以访问 子类和类外面不能访问
*/
class Person {
private name: string; //这边是private修饰符
//构造函数
constructor(name: string) {
this.name = name;
}
//方法 无返回值
run(): void {
console.log(this.name);
}
work(): string {
return `我是${this.name}`;
}
}
let p = new Person("张三"); //实例化
console.log(p.name); //这边ts会提示错误
class Web extends Person {
age: number; //子类自己的属性
constructor(name: string, age: number = 20) {
super(name);
this.age = age;
}
//子类的同名方法优先级较高,但是方法类型要一样
work(): string {
return `子类:${this.name}`; //这边ts会提示错误
}
wk(): void {
console.log(this.age);
}
}
let w = new Web("子", 100); //不赋值默认是20
console.log(w.name); //这边ts会提示错误
上一篇: PHP找不到临时文件夹如何解决?
下一篇: Tapestry5国际化资源文件的优先级