基类定义的构造函数,其子类能调用吗?

javanew 2003-10-03 09:00:55
class A
{
public A(int i){...};
public A() {...};
}

class B extends A{

}

public class MyMain(){

public static void main(...){
B b=new B(1); //对吗?
}
}
...全文
105 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
casemy 2003-10-08
  • 打赏
  • 举报
回复
不是能不能的问题,像楼主的这种情况,是必须调用父类的构造函数的
所以这种写法肯定不对
郭海涛 2003-10-07
  • 打赏
  • 举报
回复
学习!
kunbone 2003-10-07
  • 打赏
  • 举报
回复
同意楼上!
jkit 2003-10-07
  • 打赏
  • 举报
回复
鉴于这是技术讨论,我建议某些人在表达自己的观点之前先自己写段代码测试一下。
比如三楼的兄弟,你编译过你的代码没有?

楼上duke7y,caoxmby,grgh2000观点正确。
wzrlover 2003-10-07
  • 打赏
  • 举报
回复
同意楼上!
grgh2000 2003-10-07
  • 打赏
  • 举报
回复
构造函数无法继承。你之所以可以用子类的无参构造函数,不是继承了父类的,而是JAVA中定义类时会缺省给一个无参构造函数。请仔细复习JAVA基础知识.
engalw 2003-10-07
  • 打赏
  • 举报
回复
子类构造函数缺省的话只会调用父类的无参构造函数..........
不能够直接使用带有参数的父类构造函数吧?
caoxmby 2003-10-07
  • 打赏
  • 举报
回复
不对。构造函数是不能继承的。
hui3zhihui 2003-10-03
  • 打赏
  • 举报
回复
当然可以了,使用 super()或者super(参数)调用父类的构造器
另一种情况是如果子类没有重载父类的构造器,可以像你说的那样,直接使用
否则必须使用super
duke7y 2003-10-03
  • 打赏
  • 举报
回复
子类的构造器自动调用父类无参构造器(super();)也就是说如果父类没有无参构造器会报错
如果想不调用这个可以在子类的构造器第一行加入super(参数);调用其他重载过的构造器
dominic2003 2003-10-03
  • 打赏
  • 举报
回复
可以,子类能够继承父类的构造函数
class A
{
public A(int i){ a=i;...};
public A() {...};
public int a
}

class B extends A{

}

public class MyMain(){

public static void main(...){
B b=new B(1); //对
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧