package pack2;
public class O1{
private void f1(){}
protected void f2(){
System.out.println("hckacnms");
}
void f3(){}
public void f4(){}
}
package pack3;
import pack2.O1;
class O2 extends O1{
protected void g(){
System.out.println("jskh bkdb");
f2();//此方法可见
}
}public class Package { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new O2().f2();//这行是错误的
new O2().g();//这行是对的,但g()和f()方法都是protected,喂什么上一个不行呢?
}}
public class O1{
private void f1(){}
protected void f2(){
System.out.println("hckacnms");
}
void f3(){}
public void f4(){}
}
package pack3;
import pack2.O1;
class O2 extends O1{
protected void g(){
System.out.println("jskh bkdb");
f2();//此方法可见
}
}public class Package { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new O2().f2();//这行是错误的
new O2().g();//这行是对的,但g()和f()方法都是protected,喂什么上一个不行呢?
}}
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×friendly 表示缺省的作用域
详细请参见如下作用域当前类同包子孙类其他
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×