2-15修饰符`readonly`和抽象类

首先先学习个类的修饰符readonly

创建一个类,并实例化

class Person {
    constructor(public name:'string'){ }
}
const person1 = new Person('mtg')

当想让name只可读不可写时,我们之前的做法是

 class Person {
   private _name:'string'
    constructor(name:string){ 
        this._name=name
    }
    get name = this._name
  }
const person1 = new Person('mtg')

使用readonly,不可以修改。

 class Person {
   public readonly name:'string'
    constructor(name:string){ 
        this name=name
    }
  }
const person1 = new Person('mtg')

person1.name = ‘tmg’ // 报错

抽象类

抽象类是对某个集体抽象出一些公共的内容,方便继承。
如:人都有名字、性别、年龄、职业;教师有教龄;学生有年级、可以所有的人抽象一个类.

抽象类只能被继承,不能实例

abstract class Person {
    name:string;
    age:number;
    sex:string
}
class Student extends Person{
    school:string
}
const studentdemo = {
    name:'mtg';
    age:12;
    sex:girl;
    school:'小学'
}
const student1 = new Student(studentdemo)

抽象类中也可以继续定义抽象方法,在继承时就必须为抽象方法实现

abstract class Person {
    name:string;
    abstract xingzuo():string
}
class Student extends Person{
    school:string;
    xingzuo(){
        return 'sss'
    }
}
const studentdemo = {
    name:'mtg';
    age:12;
    sex:girl;
    school:'小学'
}
const student1 = new Student(studentdemo)

你可能感兴趣的:(2-15修饰符`readonly`和抽象类)