代码:

// 本节内容
// 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 jdbc连接 oracle 数据库

    准备写一个代码生成的小工具自己用,第一步,连接数据库 import jaydebeapi url = 'jdbc:oracle:thin:@192.168.0.13:1521:JGD' user = ...

  2. gitlab和jenkins的安装及使用

    gitlab 准备: 最少4G内存 先安装docker软件包然后使用docker search gitlab 查找镜像然后使用docker pull 镜像名:标签名 下载镜像启动容器: docker ...

  3. php页面禁用错误报告

    //禁用错误报告 error_reporting(0);#or ini_set("display_errors","Off"); //开启错误报告 ini_se ...

  4. js判断网页标题包含某字符串则替换

    js判断网页标题包含某字符串则替换,代码如下: var tit=document.title; if(tit.indexOf("afish")>0){ tit=tit.rep ...

  5. 自定义前端框架(VUE+magicbox响应式风格)

    1.用脚手架初始化一个vue项目swain $ vue create swain 2.安装几个常用插件

  6. java 获取bean的方式

    我们知道可以通过ApplicationContext的getBean方法来获取Spring容器中已初始化的bean.getBean一共有以下四种方法原型: l getBean(String name) ...

  7. 根据IP 自动识别国家和城市

    https://www.jianshu.com/p/1b1a018ae729 根据IP 自动识别国家和城市

  8. 红帽Linux故障定位技术详解与实例(2)

    红帽Linux故障定位技术详解与实例(2) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...

  9. 一个tornado框架下的文件上传案例

    html部分----使用了form表单,注意三要素 method="post"  action="/loaddata" enctype="multip ...

  10. Acwing-91-最短Hamilton路径(状压DP)

    链接: https://www.acwing.com/problem/content/93/ 题意: 给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hami ...