Typescript学习--类和接口

一.类

先举一个简单的例子

class Person{
	name: string = '小四'
	age: number = 18
	static gender: string = 'male'
}
const per = new Person()
  • 直接定义的属性是类的实例属性,需要通过类的实例对象访问const per = new Person(); per.name
  • 使用static开头的属性是静态属性(类属性),可以直接通过类去访问Person.gender
  • readonly开头的属性表示一个只读的属性,其无法修改

二.构造函数

构造函数会在对象创建时调用

class Dog{
	name: string
	age: number
	constructor(name:string,age:number){
		this.name = name
		this.age = age
	}
}
const dog = new Dog('小四',18)
  • 在实例方法中,this就是当前的实例
  • 在构造函数中当前对象就是当前新建的对象

三.继承extends

  • 使用继承后,子类会拥有父类所有的方法和属性
  • 如果在子类中添加了和父类相同的方法,则子类方法会覆盖掉父类的方法,这种形式叫方法重写

四.super

  • super表示当前类的父类
class Animal{
	name:string
	constructor(name:string){
		this.name = name
	}
}
class Dog extends Animal{
	age:number
	constructor(name:string,age:number){
		super(name) // 调用父类的构造函数
		this.age = age
	}
}
const dog = new Dog('小四',18)
  • 如果在子类中写了构造函数,在子类构造函数中必须对父类的构造函数进行调用
  • 通过super()调用父类的构造函数

五.抽象类

  • abstract开头的类是抽象类
  • 抽象类和其他类区别不大,只是不能用来创建实例对象
  • 抽象类就是专门用来被别人继承的类
  • 抽象类中可以有普通方法,也可以有抽象方法

抽象方法:

  • 抽象方法使用abstract开头,没有方法体
  • 抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写
abstract class Animal{
	abstract sayHello():void
}

六.接口(新增)

  • 接口用来定义一个类结构,定义一个类中应该包含哪些属性和方法
  • 同时接口也可以当成类型声明去使用
  • 语法:
interface myInterface{
	name: string;
	age: number;
}
const obj: myInterface = {
	name:'sss';
	age:18
}
  • 接口可以在定义类时去限制类的结构
  • 接口中所有的属性都不能有实际的值,即接口只定义对象的结构,而不考虑实际值,在接口中所有的方法都是抽象方法
interface myInter{
	name: string;
	sayHello():void
}
  • 定义类时,可以使用类去实现接口实现接口就是使类满足接口的要求,相当于对类的一个规范
class Myclass implements myInter{
	name: string;
	constructor(name:string){
		this.name = name
	}
	sayHello(){
		console.log('大家好~')
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值