在一个java文件中写多个类

时间:2021-01-08 19:54:14

今天突然记起一道面试题,题目是一段代码,然后求输出结果。为了求证,我开始自己动手,一开始我创建了一个Test.java文件,代码如下:

public class Test{
        public  static  void  main(String args[]){
               new B();
       }
}
public class A {
        public  A(){
              System. out .println( "I am A" );
       }
       {System.out.println( "A" );}
        static {System. out .println( "static A" );}
}

public class  extends  A{
        public  B(){
              System. out .println( "I am B" );
       }
       {System. out .println( "B" );}
        static {System. out .println( "static B" );}
}
编译器提示错误,提示A类和B类应该定义在自己的文件之中。可是我明明记得是可以在一个文件之中写多个类,然后通过上网搜索,发现是可以在一个java文件中编写

多个类,不过只能有一个public所修饰的类,所以将A和B类前的public修饰符去掉即可,最终代码如下:

public  class  Test{
         public  static  void  main(String args[]){
                new  B();
       }
}
class  A {
         public  A(){
              System.  out .println( "I am A"  );
       }
       {System. out.println( "A" );}
         static {System. out  .println( "static A" );}
}

class  B   extends   A{
         public  B(){
              System.  out .println( "I am B"  );
       }
       {System.  out .println( "B"  );}
         static {System. out  .println( "static B" );}
}
最终编译通过,顺便附上输出结果:

static A
static B
A
I am A
B
I am B
总结:其实这真的是一个非常小的问题,我只是想写下来加深印象。