请教:一段简单的继承和重载代码,报错
public class T4  {   
	{	
		System.out.println("T4的属性:"+test());
	}	
	T4(){
		System.out.println("T4构造函数 " );		
	}	
	String test(){
		System.out.println("test方法的内容" );
		return "ssss";
	}
	int aa(int a ){
		System.out.println("int a ="+a );
		return 0;
	}
	public static void main(String[] args){	
	    	T4 b = new T4()    ;
	}  	
}
public class T5 extends T4{   
	{	
		System.out.println("T5的属性:"+b.test());
	}	
	int aa(long a ){
		System.out.println("long a ="+a );
		return 0;
	}
	T5(){
		System.out.println("T5构造函数 " );		
	}	
	public static void main(String[] args){	
	    	T5 b = new T5()    ;
  		b.aa(2);
	}  	
}
D:\javatest>javac T4.java
T4.java:21: 类 T5 是公共的,应在名为 T5.java 的文件中声明
public class T5 extends T4{
        ^
T4.java:23: 找不到符号
符号: 变量 b
位置: 类 T5
                 System.out.println("T5的属性:"+b.test());
                                             ^
2 错误
------解决方案--------------------分别命名T4.java 一个文件 T5.java一个文件
或者把T4的前面的public 去掉 ,把文件命名为 T5.java
{  
System.out.println("T5的属性:"+b.test());
}  
b是在main方法中定义的 不能使用除非定义b为T5的一个属性,否则不能这样子使用
------解决方案--------------------要么就分成两个java文件写 一个T4.java 一个T5.java
要么就去掉一个public,文件名命名为带public的类的名字
静态块中 b 未定义
------解决方案--------------------LZ你在同一个文件中都能有两个public (你也太牛了吧),
------解决方案--------------------第一个问题:
1个Java文件中只能存在1个public声明的类。如果两个类非要写在一个文件中,那么只能用public关键字
来修饰到底哪个才是 真正意义上的主类。
第二个问题:
T5的普通代码块中的b变量没有定义,所以不能使用。
另外,main函数只能写在public修饰的类中才能被识别。