权限public > 包(package,默认,也就是什么权限修饰符都不加) > proteced > private
子类继承了父类的所有成员(这样说实际是不对的),但只能访问父类的非private成员。你可以认为子类持有一个名为supper的父类实例。
当父类和子类方法发生覆盖式,子类可以显式地用supper调用父类的同名方法。
//父类
public class Futher {
public static String _CN = Futher。class。getName();
public Futher(){
System。
out。println(_CN + " - public Futher()" );
}
public Futher(int i){
this。privateInt = i;
System。out。println(_CN + " - public Futher(int " + i + ")");
}
private void privateMethod(){}
protected void protectedMethod(){}
public void publicMethod(){}
void packageMethod(){}
private int privateInt = 0;
protected int getPrivatInt(){
System。
out。println(_CN + " - privateInt:" + privateInt);
return privateInt;
}
}
//子类
public class Son extends Futher{
public static String _CN = Son。
class。getName();
public Son(){
System。out。println(_CN + " - public Son()");
}
public Son(int i){
super(i);
System。
out。println(_CN + " - public Son(int " + i + ")");
}
public static void main(String[] args){
Son son = new Son();
son。
packageMethod();
son。publicMethod();
son。protectedMethod();
int futherPrivateInt = son。getPrivatInt();
Son son2 = new Son(futherPrivateInt + 1);
}
}。
全部