浅谈类的继承
类的继承 就是对一个类进行扩展,可以扩展属性、方法。
类的继承 可以很好的解决代码冗余的问题。
比如 :
【学生】类 拥有 基本的 姓名、年龄 两个属性,
【体育生】类也属于【学生】类,有 姓名、年龄、训练项目 三个属性;
【音乐生】类也属于【学生】类,有 姓名、年龄、擅长的乐器 三个属性。
如果三个类分别进行定义的话,就会出现每个类中都会有 姓名、年龄这两个基本的属性。
这就叫做代码冗余。
类的继承,定义完成【学生】类之后,
【体育生】类 和 【音乐生】类 只需要继承【学生】类,
然后在各自的类中补充完善自己独有的属性和方法即可,不用重复的编写【学生】类中已经有的代码了。
这就叫做 代码不冗余。
存在继承关系的类,通常叫做 父类与子类。
继承的写法关键字是 extends。
子类中如果想调用父类中的构造方法,使用 super(xxxx) 即可,
子类中如果想调用父类中的普通方法,使用 super.xxx() 即可。
写一个看看
定义个父类
class Father{
name:string
age:number
constructor(name:string,age:number){
this.name = name
this.age = age
}
sayHi(name:string):void{
console.log('Hi : '+name)
}
}
定义个子类
class Son1 extends Father{
nickName:string
constructor(name:string,age:number,nickName:string){
super(name,age)
this.nickName = nickName
}
sayHello(name: string): void {
console.log('Hello : '+name)
}
sayHi(name: string,msg?:string): void {
super.sayHi(name)
console.log('Son1 sayHi say : '+msg)
}
}
使用一下子类试试
let son1 = new Son1('小明',18,'明明')
console.log(son1)
son1.sayHello('小红')
son1.sayHi('小红红','你好呀')
运行结果
Son1 { name: '小明', age: 18, nickName: '明明' }
Hello : 小红
Hi : 小红红
Son1 sayHi say : 你好呀