求大师
[code=Java][/code]package com.alpha;
public class Alpha {
	private String alpha;
	public Alpha() {this("A");}
	protected Alpha(String a) {this.alpha = alpha;}	
	protected void doME() {}
}
[code=Java][/code]package com.beta;
import com.alpha.Alpha;
public class Beta extends com.alpha.Alpha {
	public Beta(String a) {
		super(a);
		doME();
		Alpha aa = new Alpha("A");		//咋就不行啊!
	}	
	public static void main(String[] args) {
		Alpha a = new Alpha();
	}
}
为啥不能调用Alpha(String a)?  protected我晓得  可是书上说的可以的啊~~  看super(a)还能调用……
------解决方案--------------------protected Alpha(String a) {this.alpha = a;}
这个构造方法 访问权限修饰符是 protected 规定必须在同一个包下才能访问 想要在不同的包下 访问这个构造方法 就要改成 public Alpha(String a) {this.alpha = a;}
------解决方案--------------------super(a); 这个写法是调用父类的构造方法  
Alpha aa = new Alpha("A"); 这个写法就是调用一个类的构造方法
相当于 super(a); 声明了我要调用父类 这时候是可以访问protected 但是访问不了 private
而Alpha aa = new Alpha("A"); 这个写法 java 就按照默认调用方法的处理方式 protected必须在同一个包下才能访问
------解决方案--------------------最后教一招 如果想用new 这种写法 可以用多态的写法
即 Alpha aa = new Beta("A"); 这样就可以了 给分吧。。。。。