ES6中类的继承
/ // 1.类的继承
class Father{
constructor(){
}
money(){
console.log(100);
}
}
class Son extends Father {
}
var son = new Son()
son.money() // 100
- extends 父类中定义两个参数,和一个求和的方法,子类继承父类,子类中也定义了两个参数,这时子调用父类的方法,报错,虽然子类可以继承父类的sum方法,但是下列代码中子类传递的数据,是子类自己的数据,而父类中sum的方法,传的是父类的数据,所以会报错
class Father{
constructor(x,y){
this.x = x
this.y = y
}
sum(){
console.log(this.x+this.y);
}
}
class Son extends Father {
constructor(x,y){
this.x = x
this.y = y
}
}
var son = new Son(1,2)
son.sum()
3.super 用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数
class Father{
constructor(x,y){
this.x = x
this.y = y
}
sum(){
console.log(this.x+this.y);
}
}
class Son extends Father {
constructor(x,y){
super(x,y);//调用了父类额构造函数
}
}
var son = new Son(1,2)
son.sum() // 3
- super 关键字调用父类的普通函数
就近原则,函数名相同时,子类有,先子类,子类没有,在父类
class Father{
say(){
return "我是粑粑"
}
}
class Son extends Father {
say(){
console.log('我是儿子');
}
}
var son = new Son()
son.say() // 我是儿子
若还想调用父类时,可手动调用,在子类中再次调用父类
class Father{
say(){
return "我是粑粑"
}
}
class Son extends Father {
say(){
console.log(super.say+"的儿子");
}
}
var son = new Son()
son.say() //我是粑粑的儿子