本文共 1969 字,大约阅读时间需要 6 分钟。
AccessRights 目录下面有三个文件,然后Demo.java 和AccessRights 目录下面的文件在不同的包内
.+--- AccessRights| +--- Fu.java| +--- test.java| +--- Zi.java+--- AnotherSon.java+--- Demo.java
如 test.java 和 Fu.java, 这两者没有继承关系
Fu.java
中 定义了4种权限的变量和方法
package com.itheima.demo.inherit.AccessRights;public class Fu { private int private_var = 10; int default_var = 11; protected int protected_var = 12; public int public_var = 13; private void private_show() { System.out.println("父类的private_show()"); } void 父类的default_show() { System.out.println("父类的default_show()"); } protected void protected_show() { System.out.println("父类的protected_show()"); } public void public_show() { System.out.println("父类的public_show()"); }}从IDE的提示来看,只有 private 成员变量不能访问之外,其他的都可以在 同一个包中 的test类访问
test.java
package com.itheima.demo.inherit.AccessRights;public class test { public static void main(String[] args) { Fu fu = new Fu(); fu.default_var = 30; fu.protected_var = 20; fu.public_var = 1; fu.default_show(); fu.protected_show(); fu.public_show(); }}
程序的输出:
父类的default_show()父类的protected_show()父类的public_show()
从结果上看,也确实是这样。
关系跟上面的是一样的。
这里 例如 Demo.java
和 Fu.java
就是 不同包内,没有继承关系的两个类。
Fu.java
和上面的代码是一样的,没有更改过。
从IDE的提示来看只有 public的成员变量和 方法才能被访问。
Demo.java
package com.itheima.demo.inherit;import com.itheima.demo.inherit.AccessRights.Fu;public class Demo { public static void main(String[] args) { Fu fu = new Fu(); fu.public_var = 10; fu.public_show(); }}
看一下结果:
父类的public_show()
确实只能访问public属性的成员变量和方法。
例如 AccessRights/Fu.java
和 AnotherSon.java
是在不同包下面但是具有 继承关系。
AnotherSon 继承 Fu, 类内部的show()
方法 也只能通过 Fu类访问 public方法和成员变量
转载地址:http://vhyci.baihongyu.com/