Javascript es6 class 类,子类修改父类的方法?

// 定义父类

class faTher {


constructor(Fname){

    this.Fname = Fname

}

fangfa1() {


alert(this.Fname)

}

fangfa12 () {


console.log(this.Fname)

}

}


// 定义子类继承父类

class Son extends faTher{


constructor(Fname, sub){

    super(Fname)

    this.sub = sub

}

fangfa2() {

    return  super.fangfa1()  // 调用父类方法   

    我怎么在子类中修改父类的方法呢 

    比如父类方法的fangfa1只是弹出了Fname,而子类我又多一个sub 属性,

    如何修改父类的fangfa1方法 让子类的sub+Fname一起弹出

}

fangfa11() {

    alert(this.Fname + this.sub);

}

}

var son1 = new Son('123', '321')

son1.fangfa2()


慕斯王
浏览 2069回答 2
2回答

www说

子类是无法修改父类的方法的哦,只能够覆盖父类的方法。你想要警告框输出Frame和sub的话,可以在Son中重新定义一个fangfa1方法,在里面写逻辑。代码如下:class Son extends faTher {  constructor(Fname, sub) {    super(Fname);    this.sub = sub;  }  // 会把父类的fangfa1方法遮盖掉  fangfa1() {    alert(this.Fname + this.sub);  }}var son1 = new Son("123", "321");// 这里调用的是子类的fangfa1方法而不是父类的fangfa1方法son1.fangfa1();希望能偶帮助到你:)

千万里不及你

让子类覆盖父类的fangfa1方法,然后想做什么就做什么class FaTher {    constructor(Fname){        this.Fname = Fname    }    fangfa1() {        // alert(this.Fname)        console.log(this.Fname)    }    fangfa12 () {        console.log(this.Fname)    }}// 定义子类继承父类class Son extends FaTher{    constructor(Fname, sub){        super(Fname)        this.sub = sub    }    fangfa1() {        super.fangfa1()  // 调用父类方法        console.log(this.Fname + this.sub);//追加子类自已的业务    }    fangfa11() {        // alert(this.Fname + this.sub);        console.log(this.Fname + this.sub)    }}var son1 = new Son('123', '321')son1.fangfa1()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript