java的几个权限修饰符,private/friendly/protected/public

[img]http://dl.iteye.com/upload/attachment/257062/3fe4fcb0-1e06-3638-a711-01a091a8276d.jpg[/img]

[size=medium]下面开始测试:

一个Test类,作为被访问的类,private就不说了,只有它自己才能访问,public是都能访问,这里主要来区分friendly和protected

新建两个类,Test1和Test2去访问Test,Test1和Test在同一个包中,Test2在其他包中[/size]

[img]http://dl.iteye.com/upload/attachment/257066/68a6f5f9-6df0-3171-805b-2be30c72b1c8.jpg[/img]


Test
package pp;
public class Test {
private void privateMethod(){}
void friendMethod(){}
protected void protectedMethod(){}
public void publicMethod(){}
}


Test1
package pp;

public class Test1 extends Test {
public static void main(String[] args) {
//同一包中,可以访问friendly,protected,public
new Test().friendMethod();
new Test().protectedMethod();
new Test().publicMethod();
}

//可以继承friendly,protected,public

@Override
void friendMethod() {
// TODO Auto-generated method stub
super.friendMethod();
}

@Override
protected void protectedMethod() {
// TODO Auto-generated method stub
super.protectedMethod();
}

@Override
public void publicMethod() {
// TODO Auto-generated method stub
super.publicMethod();
}

}


Test2
package qq;

import pp.Test;

public class Test2 extends Test {

public static void main(String[] args) {
//不同包中只能访问public,注意了!不同的包中,对于protected的方法,你可以继承它,但是你不能访问它!
new Test().publicMethod();
}

//不同包中,可以继承protected,public

@Override
protected void protectedMethod() {
// TODO Auto-generated method stub
super.protectedMethod();
}

@Override
public void publicMethod() {
// TODO Auto-generated method stub
super.publicMethod();
}

}


[color=red][size=medium]我觉得迷惑人的一点就是:不同的包中,对于protected的方法,你可以继承它,但是你不能访问它!其他的参考上面那个图就ok了[/size][/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值