curl可以访问但httpclient不能访问_java访问修饰符可以越权吗

俗话说的好:没有规矩不成方圆,如果没有一些条条框框,那这个世界就乱了。

5811103c52c42425bc1ea9b095e02c0b.png

小图一张

言归正传:java访问修饰符可以越权吗,答案:不能。

网上的例子一大堆,大多数都是这个截图:

eba536a669d4f73bb7501d02f8c16a8f.png

java修饰符

但是有多少人实际写代码测试过呢。(我今天就给你测试一把,来验证它对不对)

public咱就不说了。到哪都受欢迎。

这里先看下公共代码

f0e98072a49133c578b627ad891aee32.png

bean,我主要围绕它讲

从private说起吧

可以说它最自闭的一个了,只能自己类调用,其他休想。

622ab39abe05f685bb0afe27ffe4b753.png

private同包下调用

发现根本点不出来,同包都屏蔽了,那后面的子类和其他就更别想了。

其次是default

他相对来说还好些,(当属性前面不加修饰符,默认就是它),它支持同包,同包子类,这里强调下(网上有的直接就是子类不支持,这是错的,得分情况)

fde8c71254e9ba8685e6f77a16975036.png

default同包调用def

5988fa5de2953086aeae1e6c2144fc7a.png

default同包子类

看见了吗,这是能调用到的,不要信那些只会复制粘贴的人,太不靠谱。

44560d548d35f07ffefcc305e9f5f64c.png

子类不同包

这是不可以的。拿不到def

最后一个就是protected了

protected支持同包、子类同包,不同包的子类(这个分情况)

15b207fac94049cc778c33b4420cbe48.png

protected同包

44fc67d51a20224ddfb2a0d8a36b4f25.png

protected子类同包

引入菜鸟教程中:子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。

fab3a1534d07f51349aaa084bc42777c.png

基类protected方法

先看一下在基类的下面调用

f17ad580a8b28e99a4cf3b24b723146b.png

调用类和基类同包

Test1和基类PubTest在同一包下,发现是能调用的,如果不同包呢

5fea98ac17a9b9fce7b35f9a2c4421c6.png

调用类和基类不同包

发现直接就错误了,这就应验了上面的那句话,子类必须去继承那个方法。

0f9f43669e830e2c10f32e29374570a6.png

子类实现了testPro方法

54ecec67d4bab5c7a9e524d49bd12c85.png

可以调用了

在回答protected这个修饰符时一定要注意,别掉进陷阱里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值