导航:首页 > 方法技巧 > es6子类如何调用父类的方法

es6子类如何调用父类的方法

发布时间:2024-02-01 14:01:55

如何从子类中调用一个被重写的父类的方法

比如class
child类继承自class
parent,重载了parent的test方法,
那么child类想调用父类的test方法时,可以写成parent::test();
请采纳,谢谢

Ⅱ 子类怎样调用父类方法

publicclassSuperTest{
publicstaticvoidmain(String[]args){
Parentc=newParent();
c.addAll();
}
}

classParent{
publicvoidadd(){
System.out.println("Aadd...");
}

publicvoidaddAll(){
System.out.println("AaddALL...");
add();
//在父子类之间,如果在父类中使用this关键字,那么运行子类时如果走到this行,指的是子类而不是父类。
//谁调用,this就是指谁
System.out.println(this.getClass());
}
}

classChildextendsParent{

@Override
publicvoidadd(){
//TODOAuto-generatedmethodstub
System.out.println("Badd...");
super.add();
}

@Override
publicvoidaddAll(){
//TODOAuto-generatedmethodstub
System.out.println("BaddALL...");
super.addAll();
}

}

最后输出的结果是
BaddALL...
AaddALL...
Badd...
Aadd...
按我的理解,super.addAll()方法调用来Parent中的addAll(),而Parent中的addAll()调用了add()。这里的add最后调用的是Child的add(),既然是super.addAll(),为何最后竟然调用的是子类的add()方法。。。

这里涉及到的问题是当子类调用super走到父类的方法中,这时的对象this到底是指Child子类还是父类Parent?

正确答案是子类,this.add();其中的this是指当前对象,也就是Childc=newChild();中的c.

因此虽然是在父类中执行的add方法,但实际上执行的是子类的add方法

在父类的add 方法中

System.out.println(this.getClass());

结果是Child而不是Parent!

Ⅲ 如何从子类显式得调用父类的构造方法

当父类中有多个构造函数,且没有定义默认构造函数的话,当继承或者创建对象的时候,系统将对变量进行初始化,但系统将不能在父类中找到默认构造函数,所以这个时候要指定一个已定义的构造函数。
“类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,
否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。”

class Parent{
Parent(int a,int b);
};
class Son:public class Parent{
Son();
Son(int a,int b);
};
int a,b;
Son(a,b);

阅读全文

与es6子类如何调用父类的方法相关的资料

热点内容
低年级语文识字教学方法结题报告 浏览:644
苹果7手机接入点在哪里设置方法 浏览:663
资产评估方法的选择有哪些 浏览:319
左手冰凉的治疗方法 浏览:609
父母教育子女的最佳方法 浏览:548
正确发声的方法视频 浏览:977
治疗心脑血管疾病方法 浏览:33
观赏鱼战争的原因和解决方法 浏览:601
自做生日蛋糕最简单的方法家庭版 浏览:749
手汗蒸的最佳方法 浏览:475
点菜宝系统使用方法 浏览:622
检验绦虫虫卵常用的检查方法 浏览:206
比例均匀的训练方法 浏览:757
硅锰合金锰的分析方法 浏览:126
薯仔做菜的最简单方法 浏览:870
活性炭法检测氡方法 浏览:889
如何提高数学成绩的最佳方法小学 浏览:125
干锅包菜制作方法怎么样烧才好吃 浏览:433
java如何根据传入参数调方法 浏览:521
用什么方法能缓解口舌干燥 浏览:81