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

2024-12-23 13:26:02
推荐回答(3个)
回答1:

不懂你说的。如果是关于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"); ........}

回答2:

你哪里来的重写子类这个概念?重写的是父类的方法,重载是对自身的方法进行拓展。

回答3:

只有构造方法不能被继承.其他的都能被继承 这里需要主要的是私有的属性和方法虽然能继承但是不能使用
不一定要用super() 看需要