首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中访问权限的小有关问题

2011-11-29 
java中访问权限的小问题java中的protacted权限和缺省(包)访问权限:protacted权限支持继承访问和包访问权限

java中访问权限的小问题
java中的protacted权限和缺省(包)访问权限:
protacted权限支持继承访问和包访问权限。。。
缺省权限支持包访问。。。

两者都不支持跨包访问,也就是说,A类有个protected方法f(),在同一个包里,不管其他类是不是继承自A类,
都可以访问f();

在不同的包里,不管其他类是不是继承自A类,都无法访问f();

那么两者的区别是什么????????????



[解决办法]
首先我想纠正一下:protected 修饰的方法可以在同包类访问,也可以在其它包子类中访问,而缺省只能在同包类访问,其它包是无法访问的,不管是否继承该类,看如下代码
package db;

public class test2 {
protected void show(){//protected方法
System.out.println("protected");
}
}

package test;
import db.test2;
public class Test extends test2 {//继承

public void myshow(){
//test2 t=new test2();
//t.show();
this.show();//这里是可以访问到父类的protected的方法
//但是如果该类不继承test2类的话, //t.show();是无法调用的
//缺省在其它包我就不说了
}
}


上面可以得出:protected修饰方法可以在同包任何类访问,但是在其它包需要继承该类,才能访问该类protected成员
缺省不能再其它包访问
[解决办法]
一直觉得protected这个玩意麻烦~~参考下这里:
http://zhangjunhd.blog.51cto.com/113473/19287

热点排行