代码:

// 本节内容
// 1.类的定义
// 2.类的继承
// 3.访问修饰符
// 4.静态属性和静态方法
// 5.抽象类和多态 // js
// function Person(name) {
// this.name = name;
// this.print = function() {
// console.log(this.name)
// }
// }
// var p = new Person("aa")
// p.print() // ts 1.类的定义
class Person {
name:string;
age:number;
constructor(name:string, age:number){
this.name = name;
this.age = age;
}
print() {
return this.name + ":" + this.age
}
}
var p = new Person("张三",20)
console.log(p.print()) // 2.类的继承
class Student extends Person {
cardnumber:string;
school:string;
constructor(cardnumber:string, school:string){
super("zhangsan", 19)
this.cardnumber = cardnumber;
this.school = school
}
dohomework(){
return this.name + "今年" + this.age + "岁,就读于" + this.school + "编号" + this.cardnumber
}
}
// var stu1 = new Student("zhangsan",20)
// stu1.cardnumber = "1001"
// stu1.school = "北京大学" var stu1 = new Student("1001","北京大学")
console.log(stu1.dohomework()) // 接口的继承
interface Printer {
getmsg();
} interface ColorPrinter extends Printer {
printing();
} class HPPrinter implements ColorPrinter {
printing(){
console.log("打印成功")
}
getmsg(){
console.log("HP10011")
}
}
var hp = new HPPrinter()
hp.getmsg()
hp.printing() // 3.访问修饰符
// public / private /protected
class People {
public name:string;
private age:number;
protected email:string;
constructor(name:string,age:number,email:string){
this.name = name;
this.age = age;
this.email = email;
}
print(){
return this.name + ":" + this.age
}
} var p1 = new People("zhangsan",20,"111@qq.com")
console.log(p1.name)
// console.log(p1.age)
// console.log(p1.email)
class Teacher extends People {
show(){
console.log(this.name)
// console.log(this.age)
console.log(this.email)
}
} // 4.静态属性和静态方法
// function Boss() {
// // 实例属性
// this.name = "zhangsan";
// // 实例方法
// this.print = function(){}
// }
// // 静态属性
// Boss.age = 19
// // 静态方法
// Boss.show = function() {}
// // 调用静态方法
// Boss.show()
// // 调用静态属性
// console.log(Boss.age)
// // 调用实例方法和属性
// var boss = new Boss()
// boss.print()
// console.log(boss.name) // ts
class Boss {
// 实例属性
name:string;
age:number;
// 静态属性
static email:string;
constructor(name:string,age:number,email:string){
this.name = name;
this.age = age;
Boss.email = email;
}
// 实例方法
print(){
return this.name + ":" + this.age
}
// 静态方法
static show(){
console.log("show 方法")
}
}
// 调用静态方法
Boss.show()
// 嗲用实例方法
var boss = new Boss("zhangsan",22,'111@qq.com')
console.log(boss.print())
// 注:不依赖于类的方法,可以为静态方法 // 5.多态(同一个父类,不同的子类,有不同的实现)
class Animal {
eat() {
console.log("animal eat")
}
}
class Cat extends Animal {
eat() {
console.log("猫吃鱼")
}
}
class Dog extends Animal {
eat() {
console.log("狗吃肉")
}
}
var c = new Cat()
c.eat()
var d = new Dog()
d.eat() // 6.抽象类/抽象方法
// 6.1 抽象类是提供其他类继承的基类(父类),不能直接被实例
// 6.2 抽象方法只能包含在抽象类中,抽象类中可以包含抽象方法和非抽象方法
// 6.3 子类继承抽象类,实现抽象方法 // 定义抽象类
abstract class Beast {
// 定义抽象方法(抽象方法没有具体的方法体)
abstract eat();
run(){
console.log("run run run")
}
} class Tiger extends Beast {
eat() {
console.log("天王盖地虎")
}
} var t = new Tiger()
t.eat()

.

typescript 类(类的定义、继承、修饰符、抽象类)的更多相关文章

  1. C#类、方法的访问修饰符

    这篇文章主要介绍了C#类的访问修饰符用法,较为详细的分析了C#类的访问修饰符概念与用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用 ...

  2. Java进阶(四十)Java类、变量、方法修饰符讲解

    Java进阶(四十)Java类.变量.方法修饰符讲解 Java类修饰符 abstract: 将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. final: 将一个类生命为最终(即非继承类) ...

  3. C#中方法、类等的默认访问修饰符~

    C# 方法默认访问级别 : private C# 类默认访问级别 : internal 1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以 ...

  4. C# 方法、类等的默认访问修饰符

    C# 方法默认访问级别 : private C# 类默认访问级别 : internal 1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以 ...

  5. 10-04 Java 权限修饰符,类及其组成常见的修饰符

    四种权限修饰符的测试 /* 权限修饰符: 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类) private Y 默认 Y Y protected Y Y Y public Y Y ...

  6. 修改VS类模板自动添加public修饰符和版权注释信息

    在开发过程中,我们经常需要给类或接口添加public修饰符(默认没有)和一些相关的注释信息,这个工作是机械而枯燥的,而这个简单的需求其实是可以通过修改VS自带的类模板来实现的,下面是详细的修改步骤. ...

  7. Java 类、属性、方法修饰符 public、private、protected、default

    Java 中修饰类修饰符:public .default (默认) Java 中修饰类中属性.方法修饰符:public.private.protected.default (默认) 通过 IDEA 创 ...

  8. typescript类 继承 修饰符

    //1.ts中类的定义 /* es5: function Person(name){ this.name=name; this.run=function(){ console.log(this.nam ...

  9. 匿名类、包、权限修饰符_DAY10

    1:内部类(理解) (1)把类定义在一个类的内部. (2)特点:   A:内部类可以直接使用外部类的成员,包括私有.   B:外部类要使用内部类成员,必须创建对象使用.    例子: public c ...

  10. 类的高级:访问修饰符、封装、静态类成员static、内部类;

    访问修饰符: 公开访问(public):对所有子类,非子类访问: 受保护的(protected):只有同包子类.非子类.不同包子类可访问,不同包非子类不可访问: 私有的(private):只有本类可访 ...

随机推荐

  1. 教你用python爬取网站美女图(附代码及教程)

    我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西.那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!! ...

  2. multipart/form-data请求与文件上传的细节

    <!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8" ...

  3. 记录一次k8s环境尝试过程(初始方案,现在已经做过很多完善,例如普罗米修斯)

    记录一次Team k8s环境搭建过程(初始方案,现在已经做过很多完善,例如普罗米修斯) span::selection, .CodeMirror-line > span > span::s ...

  4. Tensorflowlite移植ARM平台iMX6

    一.LINUX环境下操作: 1.安装交叉编译SDK (仅针对该型号:i.MX6,不同芯片需要对应的交叉编译SDK) 编译方法参考:手动编译用于i.MX6系列的交叉编译SDK 2.下载Tensorflo ...

  5. 指针、数组与sizeof运算符

    指针.数组与sizcof运算符 (1)sizeof是c语言的一个运算符(主要sizeof不是函数,虽然用法很像函数),sizeof的作用是用来返同()里面的变量或者数据类型占用的内存字节数. (2)s ...

  6. python的isocalender()

    isocalender()返回指定日期的年,第几周,周几这三个值. 例子: import date date_time = datetime.date(2019, 5, 9) ret = date_t ...

  7. web规范文档说明三

    网站头部:    head/header(头部) top(顶部)导航:   nanv 导航具体区分:topnav(顶部导航).mainnav(主导航).mininav(迷你导航).textnav(导航 ...

  8. 过滤器、拦截器、AOP的区别

    过滤器 过滤器可以拦截到方法的请求和响应(ServletRequest request, SetvletResponse response),并对请求响应做出响应的过滤操作,比如设置字符编码.鉴权操作 ...

  9. thinkphp5权限仿制

    权限列表 流程 thinkphp5封装好的权限模块 RBAC还有auth and then .......管理员表,可以依据auth.php搭建所有的权限表

  10. 问题_VS2008和VS2012未能加载包.....以及破解VS2008方法

    在装了vs2012之后,装了vs2008 然后发生了加载包失败的问题 1.vs2008 解决办法:在vs2008命令提示符下运行:devenv /resetskippkgs,再重新打开就行了 2.vs ...