java中,子类能不能继承父类的构造方法??539
发布网友
发布时间:2023-10-28 06:58
我来回答
共4个回答
热心网友
时间:2023-12-07 00:49
你老师是对的,不过一下子说不清楚。给你个例子。
class A{
public A(){} // 1:无参数构造方法。
public A(String s){} // 2.
}
class B extends A{
public B(String s){
super(s); // 3.
}
}
说明:如果没有1处的无参数构造方法,那么3处一定要主动调用父类带参数的构造方法。
如果有1处的构造方法,那么3处代码可以不要,因为Java会自动默认调用父类的无参数构造方法。
记住一点:在构造子类时,一定会调用到父类的构造方法。
所以父类要么有一个默认的无参数构造,这样Java会自动调用这个无参数的构造。如果父类没有无参数的构造,那么就要你自己在子类的构造中,通过super()的方式调用父类的构造。
热心网友
时间:2023-12-07 00:50
父类的构造方法不用继承,我们可以用super来调用,如父类的构造方法为:public A(){};那么子类调用为super();如果为public A(int a);那么子类调用为super(1);
父类一般要有一个无参数的构造方法是因为我们的子类如果没有显性的调用父类的构造函数的话就会默认加入super();即调用父类的无参数构造函数,当父类没有无参数构造函数就会报错哦,这就是要加入一个无参数构造函数的原因。
JAVA的一些东西都好抽象的,自己好好理解吧。
另外欢迎访问我的个人网站:junqing124.vip2.upftp.co,
热心网友
时间:2023-12-07 00:50
概述:子类默认会调用父类的隐士的构造方法,如代码:
public class Person{
}
public class ZhangSan extends Person{
public ZhangSan(){
//此处这句话隐士调用
super();
}
}
//再给你一个例子作为参考
public class Person{
public Person(String name){
System.out.println(name);
}
}
public class ZhangSan extends Person{
public ZhangSan(){
super("张三");
}
}
热心网友
时间:2023-12-07 00:51
如果你没有申明无参数的构造函数,系统会提供一个默认的无参构造函数,但是只要申明了多个有参的,那么系统就不会为你自动提供一个无参的了。