在如下源代码文件Test.java中,哪个是正确的类定义?   
  A.   public   class   test
       {   
            public   int   x   =   0;   
            public   test(int   x)                           
             {this.x = x; }   
        }     B.   public class Test
       {   
            public   int   x=0;   
            public   Test(int   x)
             {   
                 this.x   =   x;   
             }   
       }   
  C.   public class Test extends T1, T2
       {   
             public int   x   =   0;   
             public Test(int   x)
               {   
                   this.x = x;   
               }   
       }   
  D.   public class Test extends T1
       {   
             public   int   x=0;   
             public Test(int x)
             {   
               this.x   =   x;   
             }   
        }  E.   protected class Test extends T2
      {   
             public int x=0;   
             public Test(int   x)
             {   
               this.x=x;   
             }   
      }     答案好象是B和D,但是A和B应该是一样的啊?

解决方案 »

  1.   

    A的类名是test,但是文件名是Test.java——要求类名是Test。
      

  2.   

    B DA 类名test和文件名Test不一致
    C 类不能继承两个父类
    E 类的修饰不对..只能用pulic abstract final
      

  3.   

    B DA 类名test和文件名Test不一致
    C 类不能继承两个父类
    E 类的修饰不对..只能用pulic abstract final
    _)_____________________
    同意~~
      

  4.   

    "类的修饰不对..只能用pulic abstract final"
    这种说法不对吧对于主类,只能用public或default修辞,怎么能用protected呢
      

  5.   

    BD同意上几楼朋友对AC答案所作的分析,但E答案的分析就不大对了吧,应该是像上一楼朋友说的吧,仅仅是对于主类来说,只能用Public 或default修饰吧.
      

  6.   

    BD同意上几楼朋友对AC答案所作的分析,但E答案的分析就不大对了吧,应该是像上一楼朋友说的吧,仅仅是对于主类来说,只能用Public 或default修饰吧.-------------------------------------------------------------------
    同意
      

  7.   

    只有B正确
    D.   public class Test extends T1
           {   
                 public   int   x=0;   
                 public Test(int x)
                 {   
    super(x);               
    this.x   =   x;   
                 }   
            }
      

  8.   

    D. public class Test extends T1
    {
    public int x=0;
    public Test(int x)
    {
    super();////////////////////////
    this.x = x;
    }
    }
    应该是这样的 ,可以不写出
      

  9.   

    如果父类的构造方法没有参数,子类在无参数的构造方法里可以
    不显式的书写super(),但是父类的构造方法要是有参数,子类的
    有参数构造方法就要显式的先构造父类的构造方法.
      

  10.   

    A的类名是test,但是文件名是Test.java——要求类名是Test。
      

  11.   

    BD同意上几楼朋友对AC答案所作的分析,但E答案的分析就不大对了吧,应该是像上一楼朋友说的吧,仅仅是对于主类来说,只能用Public 或default修饰吧.-------------------------------------------------------------------
    同意
      

  12.   

    只有B正确
    D.   public class Test extends T1
           {   
                 public   int   x=0;   
                 public Test(int x)
                 {   
    super(x);               
    this.x   =   x;   
                 }   
            }
    -------------------------------------
    同意这个说法,但是没有去试
      

  13.   

    BD同意上几楼朋友对AC答案所作的分析,但E答案的分析就不大对了吧,应该是像上一楼朋友说的吧,仅仅是对于主类来说,只能用Public 或default修饰吧.
    ====关于这个问题...实践出真理....
      

  14.   

    super()是可以要的,也可以不要的,super()关键字用来解决如何直接访问或初始化从父类继承来的属性。在子类中,可以用其所长super()关键字来调用父类覆盖的某个方法的基本实现。
    所以super()不是一定要在子类中出现,故 D 是对的。
      

  15.   

    a是错的,一个文件中只有一个类定义的话,则类名必须和文件名一致,大小写也一致
    b对
    c错,java没有多继承,c++还差不多
    d对
    e错,和文件名相同的类定义必须要public,一编译便知
      

  16.   

    类可以由:public abstract final修饰,这没错,就是可以,只是它们在需要时使用,并且abstract和final不能同时用,public如果不写,就是default
      

  17.   

    class T1 {
    public int x = 0;
    public void T1(int x){
    this.x=x;
    }
    }public class Test extends T1
           {   
                 public   int   x=0;   
                 public Test(int x)
                 {   
                   this.x   =   x;   
                 }   
                 
                 public static void main(String args[]){
                  Test t = new Test(2);
                  System.out.println(t.x);
                 }
            }
    Test类中没有初始化T1,也能编译通过运行,所以我觉得D是正确的
      

  18.   

    b对
    对于d要看父类是怎么定义的了
    对于选择题
    还是选b
    我认为讨论这类题目没什么意思
    在开发中不算问题的
    也就是考试
      

  19.   

    即使没有显性的调用父类的构造函数,系统也会隐性的调用父类的构造函数!所以可以不写
    super();
    但是必须保证父类有这个没有参数的构造函数。
      

  20.   

    "一个文件中只有一个类定义的话,则类名必须和文件名一致,大小写也一致"
    这么说有点问题,应该是一个文件中的public 类,类名必须和文件名一致,大小写也一致,如果
    一个文件中只有一个类是 非public 类,则无须此要求..  谢谢补充