Java-protected的使用范围
2015-10-08 16:26
337 查看
protected的使用范围
类NewObject中有protected修饰的方法或者属性,则:同一个包中:
可在同一个包里的子类中实例化
NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性,即
.操作访问。
可在同一个包里的非子类中实例化
NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性。
可在同一个包里的非子类中实例化
NewObject类的子类(该子类和
NewObject类在同一个包中)获得对象,然后可用该对象访问protected修饰的方法或者属性。
可在同一个包里的
NewObject类的子类中调用
NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被同一个包中的子类继承。
非同一个包中:
可在非同一个包里的子类中实例化
NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的非子类中实例化
NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的非子类中实例化
NewObject类的子类(该子类和
NewObject类不在同一个包中)获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的
NewObject类的子类中调用
NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被不同一个包中的子类继承。
package 1:
BaseClass:
package package_1; // 相当于NewObject类 public class BaseClass { // protected方法 protected void protectedMethod() { System.out.println("This is BaseClass"); } }
SubClass:
package package_1; public class SubClass extends BaseClass { }
MainClass:
package package_1; public class MainClass { public static void main(String[] args) { BaseClass b1 = new BaseClass(); SubClass s1 = new SubClass(); b1.protectedMethod(); // 父类的protected方法可在同一个包中的其它类中被访问 s1.protectedMethod(); // 子类中继承了父类的protected方法 } }
package 2:
SubClass:
package package_2; import package_1.BaseClass; // 继承了不在同一个包中的父类 BaseClass public class SubClass extends BaseClass { public void testMesthod(){ BaseClass b1 = new BaseClass(); b1.protectedMethod(); // 编译器报错。父类的protected方法不可以在不同一个包中的子类中被访问 this.protectedMethod(); // 子类继承了父类protected方法 } }
MainClass:
package package_2; import package_1.*; public class MainClass { public static void main(String[] args) { BaseClass b1 = new BaseClass(); b1.protectedMethod(); // 编译器报错。父类的protected方法不可以在不同一个包中的其它类中被访问 SubClass s1 = new SubClass(); s1.protectedMethod(); // 编译器报错。子类的protected方法不可以在不同一个包中的其它类中被访问 } }
相关文章推荐
- Java 课后作业 加减乘除运算 消息框显示结果
- 关于java Servlet,Struts,springMVC 的线程安全问题
- 怎么样学习Java/ 如何学好Java
- 笔试题引发的思考--装箱与拆箱
- Java图形化编程中的键盘事件设计简介
- Java核心技术学习整理(二)
- Eclipse里的web项目名有红叉,但是底下的每一个文件都没有红叉解决方法
- 详解如何使用Java编写图形化的窗口
- Java日志性能那些事(转)
- 在eclipse中增加配置文件方式
- Java异常处理
- 在Eclipse中遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误
- JAVA IO流使用
- ADT如法自动生成R.java文件
- 你的Java代码对JIT编译友好么?(转)
- java中,如何安全的结束一个正在运行的线程?
- Java虚拟机垃圾回收的几个关键问题
- Java时间日期格式转换
- 使用Java编写GUI对话框的教程
- java设计模式之——策略模式