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{}