TypeScript 抽象类

类属性只能读不能写的两种方式
class Person {
  constructor(public name:string){}
}

const person = new Person('zina');
person.name = 'hello'; // 这里可以修改 name
console.log(person.name);

// 现在我只想让它读,不想让它写怎么弄,一种是利用 Getter Setter
class Person1 {
  constructor(private _name:string){}
  get name(){
    return this._name
  }
}
const person1 = new Person1('zina');
console.log(person1.name);


// 还有一种方式 readonlay
class Person2 {
  constructor(public readonly name:string){}
}
const person2 = new Person2('zina');
console.log(person2.name);

 



抽象类

// 像这些图形类,都有获取面积的方法,这个时候就可以抽出来一个抽象类
abstract class Geom {
  /**
  * 在 getArea 前面加一个 abstract,说明这个类是抽象的
  * 因为圆形,矩形,三角形的面积求解方式都不一样,它们都有去求面积的方法
  * 但是实现方式不一样,就是你也不知道怎么实现
  * 这样就是一个抽象方法
  */
  abstract getArea(): number;
}
/**
* 抽象类只能被继承,不能被实例化,比如 new Geom,
* 如果是抽象类,子类必须自己实现一下
*/
class Circle extends Geom{
  getArea(){
    return 123
  }
}
class Square{}
class Triangle{}

 

 

posted @ 2020-06-05 06:53  wzndkj  阅读(563)  评论(0编辑  收藏  举报