Typescript类的定义与继承

//1、TS定义类
class Person{
  name:string; //属性   前面省略了public
  constructor(n:string){ //构造函数  实例化类的时候触发
    this.name=n
  }
  run():void{
    alert(this.name)
  }
  getName():string{
    return this.name
  }
  setName(name:string):void{
    this.name=name
  }
}
var p=new Person('tommy')
p.run()
alert(p.getName()) //tommy
p.setName('Jerry')
alert(p.getName()) //Jerry


//2、TS中实现继承  extends super 关键字
class Animal{
  name:string;
  constructor(n:string){
    this.name=n
  }
  type():string{
    return `this is ${this.name}`
  }
  color():string{
    return `${this.name} color is black`
  }
}
// var dog=new Animal('dog')
// alert(dog.type()) //this is dog

//继承
class Cat extends Animal{
  constructor(name:string){
      super(name) //初始化父类构造函数
  }
  say(){
    alert(`${this.name} say miao`)
  }
}
var c=new Cat('cat') //可以执行父类方法和子类方法   如果子类父类有相同方法则执行子类方法
alert(c.type()) //this is cat
c.say()// cat say miao
alert(c.color()) //cat is black

//3、类的修饰符  
// public     公有类型   类里面、子类、类外面都能访问
// protected  保护属性   类里面、子类里面可以访问,类外面不能访问
// private    私有属性   类里面可以访问,子类、类外面无法访问 
//属性不加修饰符,默认public

//public
class Work{
  public type:string;
  constructor(t:string){
    this.type=t
  }
  workTime():string{
    return `${this.type}24小时` //类内部
  }
}

class job extends Work{
  constructor(type:string){
    super(type)
  }
  work(){
    alert(`我的工作是${this.type}`)//公共类型 子类能访问
  }
}
let j=new job('程序员')
alert(j.type) //公共类型 类外部

let w=new Work('教师')
alert(w.workTime())//公共类型 类内部

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值