TypeScript 中类的概念和使用
继承、重写和 Super
class Lady {
  content = "Hi,帅哥";
  sayHello() {
    return this.content;
  }
}
class XiaoJieJie extends Lady {
  sayHello() {
    return super.sayHello() + "。你好!";
  }
  sayLove() {
    return "I love you";
  }
}
const goddess = new XiaoJieJie();
console.log(goddess.sayHello());
console.log(goddess.sayLove());
类的访问类型——private protected public
private:类内部使用protected:类内部使用、类继承使用public:类内部使用、类继承使用、类外部使用
TypeScript 类的构造函数
// 普通写法
class Person{
    public name :string ;
    constructor(name:string){
        this.name=name
    }
}
// 简化写法
class Person{
    constructor(public name:string){}
}
// 继承子类如果写了 constructor 方法,就必须在里面调用 super() 方法
class Teacher extends Person{
    constructor(public age:number){
        super('jspang')
    }
}
就是父类没有构造函数,子类也要使用super()进行调用。
class Person{}
class Teacher extends Person{
    constructor(public age:number){
        super()
    }
}
TypeScript 类的 Getter、Setter和static使用
class Xiaojiejie {
  constructor(private _age:number){}
  get age(){
      return this._age - 10
  }
  set age(age:number){
    this._age = age + 3
  }
  static sayLove() {
    return "I Love you";
  }
}
console.log(Xiaojiejie.sayLove());
const dajiao = new Xiaojiejie(28)
dajiao.age=25
console.log(dajiao.age)
类的只读属性和抽象类
只读使用 readonly 修饰。
class Person {
    public readonly _name :string;
    constructor(name:string ){
        this._name = name;
    }
}
// 或者
class Person {
    constructor(public readonly _name:string ){}
}
abstract class Girl{
    abstract skill()  //因为没有具体的方法,所以我们这里不写括号
}
class Waiter extends Girl{
    skill(){
        console.log('大爷,请喝水!')
    }
}
class BaseTeacher extends Girl{
    skill(){
        console.log('大爷,来个泰式按摩吧!')
    }
}
class seniorTeacher extends Girl{
    skill(){
        console.log('大爷,来个SPA全身按摩吧!')
    }
}
参考:
技术胖——TypeScript从入门到精通(10. TypeScript 中类的概念和使用)
技术胖——TypeScript从入门到精通(11. TypeScript 中类的访问类型)
技术胖——TypeScript从入门到精通(12. TypeScript 类的构造函数)
技术胖——TypeScript从入门到精通(13. TypeScript 类的 Getter、Setter和static使用)
技术胖——TypeScript从入门到精通(14. TypeScript 类的只读属性和抽象类)
                    
                
                
            
        
浙公网安备 33010602011771号