为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 2019-03-06 09:43:07
// 定义父类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()
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

子类是无法修改父类的方法的哦,只能够覆盖父类的方法。

你想要警告框输出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();

希望能偶帮助到你:)


查看完整回答
反对 回复 2019-03-11
?
千万里不及你

TA贡献1784条经验 获得超9个赞

让子类覆盖父类的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()


查看完整回答
反对 回复 2019-03-11
  • 2 回答
  • 0 关注
  • 2068 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信