A. class A { } 
   class B extends A { } 
B. class A { } 
   class B extends A { B( ) {} } 
C. class A { A( ) { } } 
   class B { public B( ) {} } 
D. class Z { public Z(int) {} } 
   class A extends Z { } 在不用软件的情况下你知道上面哪个会编译错误吗? 为什么

解决方案 »

  1.   

    public Z(int) {} 
    有这么写的吗喵~~```
      

  2.   

    D.创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数)
    D中父类的是 public Z(int),子类将找不到无参数的构造函数,编译则会出错.加个SUPER(int);就好了
      

  3.   

    加上super(int);恐怕红得更厉害喵~~``
      

  4.   


    是啊,他说的是思想,int代表个整数,大家都知道代码应该是public Z(3).public Z(int)这么写肯定是错误的,这不用明说吧?
      

  5.   


    我的问题是子类构造函数是如何调用父类构造函数的?通过super()方法吗?
      

  6.   


    恩恩~`,我是不是一只很死板的猫?悄悄的说: 
    public Z(3). 其实更红...
      

  7.   

    D啊 class Z { public Z(int) {} } 
      class A extends Z { } 
      

  8.   


    呵呵,大家一起讨论嘛,public Z(3). 这个为什么红?不是后面的逗号吧?
      

  9.   

    呃...方法参数啊,public Z(int i); super(int i)喵
      

  10.   

    前面定义的是需要int i ,可是后面的调用怎么能用int i了。
      

  11.   

    调用的话怎么能前面加上PUBLIC呢。