JAVA中只有重写子类,才一定要SUPER(),只是继承父类,就不需要??是这样吗

如题所述

不懂你说的。如果是关于super用在构造器的话,是这样的。
1.java中构造器的调用顺序是先父类在子类
2.子类如果没有显示的调用父类的构造,java会默认的调用super(),所以要确保父类有无参构造。
3.如果一个类中没有定义构造器,java会添加一个无参构造大致是这样的 XXX() {super();。其实注意的还是无参构造。
举例:
public class A
{
public A() //与 public A()
{} //{super();}同理
public A(String s)
{........//省略
}
}
class B extends A
{
public B()

{
super(); //也可以用spuer("");传一个String进去,这样就指定调用父类的A(String)构造器了

}
}
如果A类中没有public A () {},只有public A(String) {....},那么子类再public B(){}就不对了,应为java会自动的去调用super()方法,但是A中没有,你自己编译看看就知道了。那么B类怎么办呢,除了在A中添加无参构造外,就需要在B的构造方法里显示的调用父类的带参数的构造方法了。即 public B () {spuer("1234"); ........}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-30
你哪里来的重写子类这个概念?重写的是父类的方法,重载是对自身的方法进行拓展。
第2个回答  2012-11-30
只有构造方法不能被继承.其他的都能被继承 这里需要主要的是私有的属性和方法虽然能继承但是不能使用
不一定要用super() 看需要

java 子类的构造函数都必须要super();吗?
不是必须 但是自动调用SUPER 什么时候必须调用SUPER 给你个例子 public class Father { public String name;public Father(String name) { this.name = name;} } public class Son extends Father{ public Son(String name) { super(name);\/\/必须调用,否则他会默认调用父类的无参构造函数,而父类...

为什么java会默认在构造器第一句加上super()
子类继承了父类,你必须要写上构造方法(假如父类有些)然后你不需要对父类构造方法进行改动,或者前面部分直接照搬,那么你就可以直接用super();注:父类里面构造方法如果有其他参数 class father{ public father(){} public father(int i){} } 回调构造函数想用第一个:super();第二个:sup...

子类要调用父类的方法,必须使用super关键字.对吗?
从多太的角度来看,子类是可以继承父类的方法,如果一个子类继承了父类的方法,那么不用super关键字就是调用本类的方法,如果想调用父类的话就要加super。比如:public abstract class TestA(){ public void a(){ System.out.println("this is a method.");} protected void b(){ System.out....

关于java的问题,为什么“Super必须是子类的第一条语句”?
java类构造方式的执行顺是先构造父类,然后构造子类。要初始化子类必须先初始其父类。父类构造器调用就是用Super()来实现的,所以必须是Super。当然你可以不写,但是编译器默认会先执行Super。

java中的 super()是什么意思
this.super()是在继承当中,默认加载在重写方法中的,默认先调用父类的方法。先执行父类的方法在执行子类的方法。可以理解为,子类方法调用父类方法,是写在方法体的最上方。

子类要调用父类的方法,必须使用super关键字。这句话对吗,为什么?
这个是不对的,如果你的子类没有重写父类的方法,那么是不需要用super的 给你个例子 1.这个是不需要的 public final class $ { public static void main(String... _) { new Sun().test2();} } class Father { public void test() { System.out.println("父类");} } class Sun extends...

JAVA中 子类与父类构造方法的关系 个人理解
一句话概括就是:子类一定会调用(不是继承)父类的构造方法!即遵循一个原则:子类的构造一定是在父类已构造的基础上!这句话要分为几种情况来理解(下面只讨论父类有构造函数):子类构造函数自动调用super() (也可以手动加上)但如果父类只有含参数的构造方法,那么子类必须申明一个构造方法,...

java关于子类和父类构造方法的关系,犯迷糊!!
子类不能继承父类的显式定义的构造方法,若想要继承父类的构造方法,需要通过覆盖该构造方法,并在方法中通过super调用父类的该构造方法的方式来继承。三种情况说明:1、父类中没有显式定义任何构造方法,此时父类中实际有一个默认的无参数构造方法。这时,在子类中显式定义任何构造方法时,可以不用使用...

Java中super关键字及super()的使用
父类构造方法总会执行。12. super()在子类构造方法中用于调用父类构造方法,初始化父类特征。总结:super用于区分实例变量和局部变量、调用父类构造方法和访问父类的属性或方法。super的使用规则和this类似,但super更多关注于继承关系,指向父类的特征。正确使用super()确保代码的清晰和维护性。

java中的super()是什么
super()是子类在构造方法中调用父类的构造方法,父类构造方法中的参数要与super()中的参数一致,但子类的构造方法的参数可以自定,不受限制。比如:class myclassa { ...\/\/构造方法 public myclassa(string name){ ...} } class myclassb extends myclassa { \/\/构造方法 public myclassb()\/...

相似回答