java中,子类能不能继承父类的构造方法??
我们老师讲说不能继承,但又说父类一般要有个无参的构造方法,如果没有用super()继承,到底是什么呀!!!崩溃....崩溃.....什么时候用继承?什么时候用多态呀???...
我们老师讲说不能继承,但又说父类一般要有个无参的构造方法,如果没有用super()继承,到底是什么呀!!!崩溃....崩溃.....
什么时候用继承?什么时候用多态呀????
越详细越好!谢谢!!!!!!!! 展开
什么时候用继承?什么时候用多态呀????
越详细越好!谢谢!!!!!!!! 展开
6个回答
展开全部
你老师是对的,不过一下子说不清楚。给你个例子。
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()的方式调用父类的构造。
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()的方式调用父类的构造。
展开全部
父类的构造方法不用继承,我们可以用super来调用,如父类的构造方法为:public A(){};那么子类调用为super();如果为public A(int a);那么子类调用为super(1);
父类一般要有一个无参数的构造方法是因为我们的子类如果没有显性的调用父类的构造函数的话就会默认加入super();即调用父类的无参数构造函数,当父类没有无参数构造函数就会报错哦,这就是要加入一个无参数构造函数的原因。
JAVA的一些东西都好抽象的,自己好好理解吧。
另外欢迎访问我的个人网站:junqing124.vip2.upftp.co,
父类一般要有一个无参数的构造方法是因为我们的子类如果没有显性的调用父类的构造函数的话就会默认加入super();即调用父类的无参数构造函数,当父类没有无参数构造函数就会报错哦,这就是要加入一个无参数构造函数的原因。
JAVA的一些东西都好抽象的,自己好好理解吧。
另外欢迎访问我的个人网站:junqing124.vip2.upftp.co,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-09-30 · 知道合伙人数码行家
关注
展开全部
概述:子类默认会调用父类的隐士的构造方法,如代码:
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("张三");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你没有申明无参数的构造函数,系统会提供一个默认的无参构造函数,但是只要申明了多个有参的,那么系统就不会为你自动提供一个无参的了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询