Typescript类的使用(属性方法继承等)

ts-类

class Person{
	name:string		// 属性 前面省略了public关键词
	constructor(n:string){	// 构造函数,实例化类的时候触发的方法
		this.name = n
	}
	run():void{
		alert(this.name)
	}
	getName():string{
		return this.name
	}
}
let p =new Person('zhangsan')
p.run()

继承(extends / super)

// 父类:
class Person{
	name:string
	constructor(n:string){
		this.name = n
	}
	run():string{
		return `${this.name}在运动`
	}
}
// 子类:
class Web extends Person{
// 继承 extends / super结合使用,继承父类,子类自己的方法也可以使用
	constructor(n:string){
		super(name) // 初始化父类的构造函数
	}
	work():void{
		alert(`${this.name}在工作`)
	}
}
let w = new Web('李四')
w.run()
w.work()

类修饰符(public / protected / private)
属性不加修饰符默认为public
public:公有,在类里面,子类,类外面都可以访问
protected:保护类型,在类里面,子类里面可以访问,在类外部无法访问
private:私有,在类里面可以访问,子类和类外都无法访问,没有继承在当前类的调用可以访问

类-静态属性 / 静态方法

class Person{
	public name:string
	static sex:string 	// 静态属性
	constructor(name:string){
		this.name = name
	}
	run(){		// 实例方法
		alert(`${this.name}在运动`)
	}
	work(){
		alert(`${this.name}在运动`)
	}
	static print(){ // static关键字,静态方法不能直接调用类里面的属性,只能调用静态属性
		alert(Person.sex + '孩子')
	}
}
let p =new Person()
p.run()
Person.print()			// 静态方法直接调用

多态(属于继承)
父类定义一个方法不去实现,让继承它的子类去实现,每一个子类有不同的表现

class Animal{
	name : string
	constructor(name:string){
		...
	}
	eat(){
		...
	}
}
class Dog extends Animal{
	constructor(name:string){
		super(name)
	}
	eat(){
		alert(`${this.name}+吃骨头`)
	}
}
...

抽象方法 - 抽象类
(定义标准)
抽象类:是提供其他类继承的基类,不能直接被直接实例化
abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现
abstract 抽象方法只能放在抽象类中

abstract class Animal{
	public name:string
	constructor(name:string){
		this.name = name
	}
	abstract eat():any;
}
class Dog extends Animal{
	// 抽象类的子类必须实现抽象类里面的抽象方法
	constructor(name:string){
		super(name)
	}
	eat(){
		console.log(this.name+'是动物')
	}
}
let d = new Dog('小狗')
d.eat()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值