当前位置:  技术问答>java相关

送分8

    来源: 互联网  发布时间:2015-01-15

    本文导语:  class A {    int i;    A(int i) {       this.i = i * 2;    } } class B extends A {    public static void main(String[] args) {       B b = new B(2);    }    B(int i) {       System.out.println(i);    } } Select the one...

class A {
   int i;
   A(int i) {
      this.i = i * 2;
   }
}

class B extends A {
   public static void main(String[] args) {
      B b = new B(2);
   }
   B(int i) {
      System.out.println(i);
   }
}

Select the one right answer.

a) The instance variable i is set to 4

b) The instance variable i is set to 2

c) The instance variable i is set to 0

d) This code will not compile

选什么?为什么?

|
答案是D。

因为 B 的父类 A 没有无参的构造函数,因此在 B 的构造函数中必须有一个显式的父类的构造函数调用,形式为 super(i),否则,在构造 B 的时候,编译器无法先构造一个 A 对象,因为编译器无法插入一个隐式的 super()调用。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3