新手容易犯错的地方
publicclassTest{
public static void main(String args[]){
newB();
}
}
public classA {
public A(){
System.out.println("I am A" );
}
{System.out.println("A");}
static{System.out.println("static A");}
}
public class B 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");}
}
1、如果类A被声明为公共的(public),那么必须将类A保存在名为A.java的文件中;
2、反之,在一个文件中最多包含一个顶级的公共类,并且该公共类的名字与文件名相同。比如文件A.java中,允许定义一个或多个类,但最多允许一个顶级的公共类,此类名为A。此处强调的顶级的意思是,允许非顶级的公共类存在,如内部公共类等。