这有一道JAVA认证题,有谁会,帮帮忙!

qq_pride 2002-01-09 08:33:39
有两个类,分别在两个文件中
public class Base{

public void method(int i){
System.out.println("Value is "+i);
}

}
public class Test extends Base{
public Test(int j){

}
public Test(int j,int k){super(j,k);}
}

问:Which of the following forms of constructor must exist explicitly in the definition of the Base class?
A. Base(){}
B. Base(int j){}
C.Base(int j,int k){}
D.Base(int j,int k,int L){}
谁知道答案,为什么,请指教
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_pride 2002-01-09
  • 打赏
  • 举报
回复
谢谢大家了,我明白了
waterdragonfly 2002-01-09
  • 打赏
  • 举报
回复
If any other constructor is created,Java will no longer create a default no-arguments constructor for you.
If the superclass contains a constructor that has arguments,Java will not create a default constructor for any subclasses that are created.
这两句话不知道对你有没有用(出自《Sun认证Java 2 程序员学习指南》)
archer_zhang 2002-01-09
  • 打赏
  • 举报
回复
同意steiven(steiven)!
archer_zhang 2002-01-09
  • 打赏
  • 举报
回复
C.Base(int j,int k){}
binghuodao 2002-01-09
  • 打赏
  • 举报
回复
new Base()必须要写。因为public Test(int j){}会自动调用父类的构造函数。
dtmark 2002-01-09
  • 打赏
  • 举报
回复
a,c
那么
public Base(){int j, k}
对吗?
steiven 2002-01-09
  • 打赏
  • 举报
回复
a,c
因为 public Test(int j){} 说明父类中需要存在Base()这个构造函数,但是这个构造可以不写由系统自动完成。
public Test(ing j, int k){super(j,k);} 说明说明父类中需要存在Base(int j, int k)这个构造函数,但是如果这个Constructor存在的话,Base()这个Constructor就必须添加,因为这个时候系统不会自动添加这个缺省Constructor了。
vdragon 2002-01-09
  • 打赏
  • 举报
回复
a必须要
因为在class Test中的public Test(int j)里面没有显式的调用super,那么就会隐式调用super(),所以new Base()是一定要的
c也要
qq_pride 2002-01-09
  • 打赏
  • 举报
回复
我在JB中试过了,a、c缺一不可,有谁知道为什么?
Luke_cn 2002-01-09
  • 打赏
  • 举报
回复
c
a可以不存在,只要不写new Base();这样的语句
0legend 2002-01-09
  • 打赏
  • 举报
回复
c //a也可不写
iamsureone 2002-01-09
  • 打赏
  • 举报
回复
c.
because of super(j,k)
jimw 2002-01-09
  • 打赏
  • 举报
回复
a,c

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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