java的子类和父类中的super、this的区别?
java中子类继承父类,并且没有重写父类中的某一个方法add(),那么对于子类而言,要使用方法add(),用super.add()和this.add()是不是完全没有区别...
java中子类继承父类,并且没有重写父类中的某一个方法add(),那么对于子类而言,要使用方法add(),用super.add()和this.add()是不是完全没有区别?
注 :(add()只是一个普通方法)
继续上的问题:
如果在子类中,调用父类的方法,不写this,也不写super,这样调用的是谁的方法,父类,还是子类的? 展开
注 :(add()只是一个普通方法)
继续上的问题:
如果在子类中,调用父类的方法,不写this,也不写super,这样调用的是谁的方法,父类,还是子类的? 展开
5个回答
展开全部
对,没重写那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
再在子类中,都不写的话,如果有重写父类的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,也不写super,这样调用的是谁的方法,父类,还是子类的?
追答
重写是子类的啊。不重写是父类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询