子类要调用父类的方法,必须使用super关键字.对吗?
4个回答
推荐于2017-09-10 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897
获赞数:1465045
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
在继承结构里面,为了保护封闭原则,通常子类以继承之后,子类可以直接调用父类非私有方法,也就是除了private修饰的方法。
从多太的角度来看,子类是可以继承父类的方法,如果一个子类继承了父类的方法,那么不用super关键字就是调用本类的方法,如果想调用父类的话就要加super。
比如:
public abstract class TestA(){
public void a(){
System.out.println("this is a method.");
}
protected void b(){
System.out.println("this is b method.");
}
private void c(){
System.out.println("this is c method.");
}
}
public class TestC extends TestA(){
//该方法为子类方法,非父类方法。
public void aa(){
super.a(); //Yes
a():// Yes 等同 super.a();
super.b(); //Yes
b(); //Yes 等同 super.b();
super.c(); // no 访问不到。
c(); // NO 访问不到。
}
//覆盖父类方法
protected void b(){
System.out.println("this is TestC b method.");
}
public void d(){
b(); //调用本类的方法
super.b(); //调用父类的方法
}
}
从多太的角度来看,子类是可以继承父类的方法,如果一个子类继承了父类的方法,那么不用super关键字就是调用本类的方法,如果想调用父类的话就要加super。
比如:
public abstract class TestA(){
public void a(){
System.out.println("this is a method.");
}
protected void b(){
System.out.println("this is b method.");
}
private void c(){
System.out.println("this is c method.");
}
}
public class TestC extends TestA(){
//该方法为子类方法,非父类方法。
public void aa(){
super.a(); //Yes
a():// Yes 等同 super.a();
super.b(); //Yes
b(); //Yes 等同 super.b();
super.c(); // no 访问不到。
c(); // NO 访问不到。
}
//覆盖父类方法
protected void b(){
System.out.println("this is TestC b method.");
}
public void d(){
b(); //调用本类的方法
super.b(); //调用父类的方法
}
}
展开全部
不需要,但是如果你子类如果重写了父类的方法,那么在你想掉父类的方法的时候就必须写成super.method()这种方式了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不对~~~~~~~~
在调用或重载父类的构造方法时才要
在调用或重载父类的构造方法时才要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没错,非静态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
更多回答(2)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询