探讨Java内部类的可见性
作者:网络转载 发布时间:[ 2013/4/24 9:59:07 ] 推荐标签:
4、不同包继承类的访问
在另一个包中建立一个类DifferPackageExtend.java,它继承自外部类Out。
DifferPackageExtend.java
package com.zj.other;
import com.zj.main.Out;
public class DifferPackageAndExtend extends Out{
public static void main(String[] args){
//create an DifferPackageAndExtend's object,which extends Out
Out extend=new DifferPackageAndExtend();
//create a protected inner object by 'new'
//Out.ProtectedIn protectedIn=extend.new ProtectedIn();
//->error:The constructor Out.ProtectedIn() is not visible
// create a protected inner object by 'out's method'
Out.ProtectedIn protectedIn=extend.getProtectedIn();
protectedIn.public_arg=0;
protectedIn.public_method();
}
}
通过new方式,虽然可以得到内部类的句柄Out.ProtectedIn,但该内部类的构造子却不可见。
通过getInnerInstance()方法得到protected内部类的对象,但只能访问到public成员和public方法。由此可知,protected内部类并不关心是否有其他类继承自它的外部类。所有protected访问权限不在此种情况下适用。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11