对,没重写那super.add() 和this.add() 都是调的父类的方法, 没什么区别,如果重写了this.add()就默认调本类的方法,super就默认调父类的方法,
再在子类中,都不写的话,如果有重写父类的add()方法的话就默认调本类的add()方法, 如果本类没有重写就调父类的方法,
其实这种问题建议你直接写一个小代码一目了然,比如:
class A{
void add(){
System.out.println("天下无双");
}
}
class B extends A{
void add(){
System.out.println("天下无贼");
}
void aa(){
add();
super.add();
}
}
public class aaaaaaa {
public static void main(String[] args) {
A a=new A();
B b=new B();
b.aa();
}
}
你可以试试, 我也是新手, 对这种问题还是比较喜欢自己动手, 听别人说总有点云里雾里的, 可以加我Q互相讨论一下494792360
在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,new这个子类的实例对象后。使用super来引用父类对象,使用this引用当前对象。
举例:
public class F{//定义父类
public void s(){//定义父类方法s
}
}
public class K extends F{//定义子类K,继承父类F
public void s(){//定义子类方法s,覆盖父类s
}
public void k2(){
super.s();//通过super,指明调用父类的方法s
this.s();//通过this,指明调用当前类的方法s
}
}
当有相同的属性或者方法是this子类表示调用自己的属性或者方法,super调用父类的属性或者方法。当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法
默认是 this.xxx
没有重写的话就没有什么区别。