接口的本质就是抽象类

1-1 抽象类

  1. //抽象类
  2. //1、使用class关键字定义的类叫做实体类
  3. //实体类中方法一定要写实现的方法
  4. class Animal{
  5. eat():void{
  6. console.log("any");
  7. }
  8. }
  9. //2、抽象类 本质上就是一个接口
  10. //抽象类前面要加上自己定义的方法的名称
  11. abstract class Animal {
  12. abstract eat():void
  13. }
  14. //使用实体类对抽象类实现继承的时候,必须重写抽象类中的抽象方法
  15. class Cat extends Animal{
  16. eat():void{
  17. console.log("鱼");
  18. }
  19. }
  1. interface Animal{
  2. eat():void;
  3. }
  4. class Cat implements Animal{
  5. eat(): void{
  6. console.log("鱼");
  7. }
  8. }

1-2 接口和只读属性

readonly 只读属性

  1. /* public-static-readonly */
  2. interface attrs{
  3. readonly id:number;
  4. name:string;
  5. /* 可选属性 */
  6. age?:number;
  7. }
  8. var obj:attrs={
  9. id:12,
  10. name:"lisi"
  11. }
  12. obj.name = "zhang";
  13. obj.id = 14; //error
  14. console.log(obj);