给定如下Java程序片断: class A{ public A (){ System.out.println("A"); } }
给定如下Java程序片断:classA{publicA(){System.out.println("A");}}classBextendsA{publicB(){Syst...
给定如下Java程序片断:
class A{
public A (){
System.out.println("A");
}
}
class B extends A{
public B(){
System.out.println("B");
}
public static void main(String[] args){
B b=new B();
}
}
上述程序将()。
a) 不能通过编译
b) 通过编译,输出为:A B
c) 通过编译,输出为:B
d) 通过编译,输出为:A
这题为什么选B 啊 谁知道啊 ? 展开
class A{
public A (){
System.out.println("A");
}
}
class B extends A{
public B(){
System.out.println("B");
}
public static void main(String[] args){
B b=new B();
}
}
上述程序将()。
a) 不能通过编译
b) 通过编译,输出为:A B
c) 通过编译,输出为:B
d) 通过编译,输出为:A
这题为什么选B 啊 谁知道啊 ? 展开
2个回答
展开全部
这个题是考查你对继承理解的怎么样,继承的时候你要记得子类一定会调用父类的构造方法,如果没有显示的调用则系统默认调用父类参数为空的构造方法,而且若要用super调用父类的构造方法必须写在方法的第一行,上面的程序可以写成这样:
class A{
public A (){
System.out.println("A");
}
}
class B extends A{
public B(){
super();
System.out.println("B");
}
public static void main(String[] args){
B b=new B();
}
}
class A{
public A (){
System.out.println("A");
}
}
class B extends A{
public B(){
super();
System.out.println("B");
}
public static void main(String[] args){
B b=new B();
}
}
展开全部
类B继承类A,按照继承来说B中将拥有A中的所有属性和方法,但是A中不一定有B中的所有属性和方法 因为B继承A之后还可以添加自己的属性和方法 同时B也可以复写基类的方法,在该题中B中的构造函数没有复写基类的构造函数 因为两个函数名不同 所以B继承A之后有两个方法,一个是public A()(这个方法在B中是看不见的 但是却是存在的),一个是public B();所以当对类B实例化后将输出AB.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询