java 访问权限之public protected default(默认) private

学习记录啦啦啦啦 2017-02-10 04:25:11
1,可修饰权限
类 : public default
变量和方法 :public protected default private
2,其中
protected 包内可访问,包外不能访问,但包外(子类父类不同包),若子类继承了父类,可在子类中访问父类的protected属性和方法。
default 包内可访问,包外不可访问。
3, protected
package com.zhk
class F {
protected int i = 0;
}
package com.zd
class S extends F {
public void method(){
F f = new F();
f.i; //错误,子类父类在不同包下,不能这种方式访问。但子类父类若是在同一包下,是可以这种方式访问的。

super.i;//正确,可通过关键词super访问父类中protected属性。(super为非静态方法,是不能在静态方法main中使用的)
}
}
...全文
222 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Z. ZHANG 2017-02-11
  • 打赏
  • 举报
回复
这是想表达什么,,,,
Z. ZHANG 2017-02-11
  • 打赏
  • 举报
回复
引用 1 楼 zzhao114 的回复:
这是想表达什么,,,,
你都说了是包内或是继承,你一个在com.zhk一个在com.zd,你直接用f这个对象去访问肯定不行啊
  • 打赏
  • 举报
回复
引用 1 楼 zzhao114 的回复:
这是想表达什么,,,,
protected 权限访问,在不同包下,若有继承关系,则是可以访问。 我代码测试了下,发现只能通过super关键词去访问父类中的protected属性。 而若通过F f =new F();的f对象去访问是不可以的,不可见,为什么?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧