在同一个包下 - 都可以访问
/**
*
* 演示访问权限在包中的使用
*/
package Test14_Demo.Demo05;/*
@create 2020--12--02--14:33
*/
public class AccessClass {
//私有化的方法
private void method1() {
System.out.println("私有化方法");
}
//默认权限的方法
void method2() {
System.out.println("默认权限的方法");
}
//受保护的方法 - 对子类的保护 - 不在一个包下也可以使用
protected void method3() {
System.out.println("受保护的方法");
}
public void method4() {
System.out.println("公共方法");
}
//测试访问权限的方法
public void testAccess() {
method1();
method2();
method3();
method4();
}
public static void main(String[] args) {
//实例化对象
AccessClass ac = new AccessClass();
ac.testAccess();
//测试本类中的权限
ac.method1();
ac.method2();
ac.method3();
ac.method4();
}
}
在同一个包下但在不同的类中:
/**
*
* 访问权限测试
*/
package Test14_Demo.Demo05;/*
@create 2020--12--02--14:39
*/
public class AccessDemo {
public static void main(String[] args) {
//创建对象
AccessClass ac = new AccessClass();
//私有的 - 本类中访问
//ac.method1();
ac.method2();
ac.method3();
ac.method4();
}
}
在不同的包下 - 且继承之后:
/**
*
* 访问权限测试
*/
package Test14_Demo.Demo06;/*
@create 2020--12--02--14:39
*/
import Test14_Demo.Demo05.AccessClass;
public class AccessDemo extends AccessClass {
public static void main(String[] args) {
//创建对象
AccessClass ac = new AccessClass();
//私有的 - 本类中访问
//ac.method1();
//ac.method2();//默认的权限符 - 只能在本包和本类中被访问
//ac.method3();//保护的 - 同包和同类以及子类
ac.method4();
}
public void method0() {
//调用父类中的内容
//super.method1();私有的不可以
//super.method2();默认的权限方法不可调用
super.method3();//可以访问,因为这里继承了父级,利用super可以访问
super.method4();//可以访问,因为是公共的
}
}