抽象类也成基类,类似于定义一个模板,抽象类的子类都必须按照抽象类的方式定义抽象类中的抽象方法和抽象属性。

读完上面一段话,感觉好像。。。没什么感觉。

抽象类是什么?
就是在类前面,加一个abstract修饰符。

// Person加了abstract 就是一个抽象类
abstract class Person {name: string;age: number;sex: '男' | '女';constructor(name: string, age: number, sex: '男' | '女') {this.name = name;this.age = age;this.sex = sex;}
}

抽象方法和抽象属性是什么 ?
就是在抽象类里面,某一个方法或者属性加上abstract修饰符

abstract class Person {abstract name: string;age: number;sex: '男' | '女';constructor(name: string, age: number, sex: '男' | '女') {this.name = name;this.age = age;this.sex = sex;}getName: () => void = () => {return this.name;};
// getPerosonInfo方法加了abstract 就是一个抽象方法abstract getPerosonInfo: () => void = () => {return {name: this.name,};};
}

抽象类里面可以没有抽象方法或抽象属性,但抽象方法或抽象属性必须放在抽象类中。

abstract class Tz {getPerosonInfo: () => void = () => {}
}
class Yx {constructor() {}/** 抽象方法只能放到抽象类中, */ // abstract getName = () => {// // }
}

抽象类无法创建实例(无法进行new操作)

/** class 抽象 abstract */abstract class Person {name: string;age: number;sex: '男' | '女';constructor(name: string, age: number, sex: '男' | '女') {this.name = name;this.age = age;this.sex = sex;}getName: () => void = () => {return this.name;};abstract getPerosonInfo: () => void = () => {return {name: this.name,};};
}
// 抽象类不能实例化
// var person1 = new Person('dx', 18, '男');

抽象类作为基类,子类必须存在抽象类的抽象方法或抽象属性(并且类型一致)

/** class 抽象 abstract */

// 抽象父类(基类)
abstract class Person {name: string;age: number;sex: '男' | '女';constructor(name: string, age: number, sex: '男' | '女') {this.name = name;this.age = age;this.sex = sex;}getName: () => void = () => {return this.name;};abstract getPerosonInfo: () => void = () => {return {name: this.name,};};
}// 子类 继承抽象类
class Dx extends Person {//父类的抽象方法必须存在子类中,并且类型一致getPerosonInfo: () => void = () => {return {name: this.name,};};
}// class Tz extends Person {// 类型不一致是不允许的// getPerosonInfo: (name: string) => void = () => {};
// }

抽象类的作用,作为类的模板,规范了其子类定义的标准,让代码更加规范。

typescript抽象类 abstract相关推荐

  1. php 类 接口的区别吗,PHP的接口类(interface)和抽象类(abstract)的区别

    /** * 接口类:interface * 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类, * 那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候 ...

  2. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  3. Python编程基础:第四十七节 抽象类Abstract Classes

    第四十七节 抽象类Abstract Classes 前言 实践 前言 抽象类可以这么理解,它就是一个模板,里面声明了子类必须定义的函数,但是对于每个函数都没有给出具体实现.所有函数的实现都是在子类中定 ...

  4. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  5. 小论接口(interface)和抽象类(abstract class)的区别

    接口是类实现了某一种功能的体现,这种体现往往是对外的,所以重载接口的函数一定是public的 可是初学OO编程的时候,往往会碰到一个问题,既然有接口(interface)的存在,为什么还要有抽象类(a ...

  6. 接口Interface和抽象类abstract class的区别

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和inte ...

  7. Java 面向对象 之 抽象类 abstract

    转载于 : http://www.verejava.com/?id=16992804621647 /**知识点: 抽象类 abstract题目: 爸爸叫我买一斤水果和一条鱼思路:1. 抽象出类:爸爸( ...

  8. C#中接口(Interface)与抽象类(abstract)的区别

    前言:在我学习接口(interface)与抽象类(abstract)时,我发现它们有一些相似之处也有一些不同,本博文来详细说说它们二者之间的区别: 文章目录: 一.不同之处: 1.声明上: 2.成员上 ...

  9. Java中抽象类 abstract和interface的区别

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和inte ...

最新文章

  1. 实时排行榜的后台数据功能实现
  2. vue 日期前面加0_vue日期组件 支持vue1.0和2.0
  3. python randint什么分布_python随机数分布random测试
  4. Oracle注册表修改 乱码编码
  5. 阿里资深技术专家崮德:8 个影响我职业生涯的重要技能
  6. PyQt5笔记(08) – 输入对话框
  7. SpringSecurity-1-AuthenticationSuccessHandler接口(登录成功之后的处理逻辑)
  8. 如何区分用户_如何区分粗沙、中沙、细沙,把粗沙制成细沙需要用什么制砂设备,多少钱?...
  9. JDK8 有关集合部分常用的语法
  10. dos命令实现无限弹窗
  11. Java8实现List转Map
  12. c语言 ipv4转ipv6,环境配置:Ipv6转Ipv4
  13. Syntax error on token?excepted agter this token
  14. 基础一:一切都是对象
  15. 直播回顾 | BPM平台与微服务架构天生契合(附资料下载)_Nebulogy_纳比云
  16. GA125整经机普罗菲斯触摸屏程序+西门子PLC S7-200程序
  17. 必须做的事 教你数据备份
  18. 计算机维修基本技能考试试题,高级计算机维修工操作技能考核试卷
  19. mxGraph xml to json方法
  20. 问题 E: 购买贺年卡(card)

热门文章

  1. 决策树特征选择算法介绍
  2. c++设计模式-单例模式
  3. 利用css 动画实现节流
  4. 【蓝桥杯预备营集结七】软件类 C/C++ 预备试题(分支结构+循环结构类)分析及解答
  5. java 迪米特法则_Java设计模式之迪米特法则
  6. 国内某知名软件更新的安全分析
  7. 学习matlab(八)——绘图(二维)
  8. java 调用ajax_JAVA AJAX调用
  9. HIVE SQL 聚合函数与 rows between / range between详解
  10. 部分SOP-8低价双运放选型参考