TS —— TS中的面向对象
文章目录
- 前言
- 一、什么是对象
- 二、定义class
- 三、extends继承
- 四、super继承
- 五、接口
- 总结
第一节: 什么是对象
程序中所有的操作都需要通过对象来完成,对现实事物的一个抽象,以一系列的属性与方法的集合。比如,人,手机。
第二节:定义class
class Person{name:string = "张三";static age:number = 19;//静态属性readonly height:number = 163;//只读属性无法修改say(){console.log("会说话..");}}
构造函数:
class Person{realname:string;//定义类型age:number;//构造函数中赋值constructor(realname:string,age:number){this.realname = realname;this.age = age;}}
第三节:extends继承
子类继承父类的属性与方法。
第四节:super继承
在类的方法中,就是表示当前类的父类。子类调用父类的构造函数,必须写super调用父类的函数,因为重写了父类的函数,父类的函数就无法调用需要用super调用父类的构造函数
第五节:抽象类
定义:abstract 开头的类为抽象类 不能用来创建对象,专门用来继承的类。
抽象类声明的抽象方法,子类必须要实现父类的抽象方法。
(function(){abstract class Person{realname:string;age:number;constructor(realname:string,age:number){this.realname = realname;this.age = age;}abstract say():void;}class ChinaPerson extends Person{constructor(realname:string,age:number){super(realname,age);}say(){console.log("说普通话");}} const P1 = new ChinaPerson("张三",19);})();
第六节:接口
定义:接口用来定义一个类中 应该包含哪些属性和方法。
接口定义的属性都没有值,接口定义的方法都是抽象方法。
接口是对类的属性和方法的一个限制。
(function(){interface myinterface{name:string,age:number,}const obj:myinterface={name:"张三",age:19}console.log(obj);})();
用 implements 实现接口。
(function(){interface myinterface{name:string;say():void;}class Person implements myinterface{name:string;constructor(name:string){this.name = name;}say(){console.log("123");}}})();
第七节:属性的封装
Public:公共的,修饰的属性可以在任意位置修改。
Private:私有的,只能在类的内部使用。可以用get和set。
Protected:受保护的属性,只能在当前类和子类中访问。
class Person {realname: string;private age: number;protected height:number;constructor(realname: string, age: number,height:number) {this.realname = realname;this.age = age;this.height = height;}say( ){return this.age = 30}getAge( ){return this.age = 40}
}
class Fans extends Person{constructor(realname:string,age:number,height:number){super(realname,age,height);}changeAge(){return this.height = 60;}
}
const fan = new Fans('Ljy',24,170);
console.log(fan.changeAge());
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
