Java中,权限修饰符的权限测试
Posted haha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中,权限修饰符的权限测试相关的知识,希望对你有一定的参考价值。
=============================================================================
1、
1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中 同一个包下的子类和无关类 不同包下的子类 不同包下的无关类 5 private Yes No No No 6 默认 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 30 public static void main(String[] args) { 31 Father f = new Father(); 32 f.show(); 33 f.show2(); 34 f.show3(); 35 f.show4(); 36 } 37 }
在本类中,测试结果为:
=============================================================================
2、
1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中 同一个包下的子类和无关类 不同包下的子类 不同包下的无关类 5 private Yes No No No 6 默认 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package com.liuyi; 2 3 class Son extends Father { 4 public static void main(String[] args) { 5 Father f = new Father(); 6 //f.show(); 7 f.show2(); 8 f.show3(); 9 f.show4(); 10 System.out.println("--------------"); 11 12 Son s = new Son(); 13 //s.show(); 14 s.show2(); 15 s.show3(); 16 s.show4(); 17 } 18 }
在同一包下的子类中,测试结果为:(注意:在子类代码中分别测试了父类和子类)
=============================================================================
3、
1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中 同一个包下的子类和无关类 不同包下的子类 不同包下的无关类 5 private Yes No No No 6 默认 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package com.liuyi; 2 3 class Test { 4 public static void main(String[] args) { 5 Father f = new Father(); 6 //f.show(); 7 f.show2(); 8 f.show3(); 9 f.show4(); 10 } 11 }
在同一包下的无关类中,测试结果为:
=============================================================================
4、
1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中 同一个包下的子类和无关类 不同包下的子类 不同包下的无关类 5 private Yes No No No 6 默认 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 public class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package cn.qx; 2 3 import com.liuyi.Father; 4 5 public class Son2 extends Father { //Father在com.liuyi中不是公共的,无法从外部程序包中对其进行访问,需要在class Father前面加public修饰。 6 public static void main(String[] args) { //为了简便起见,以后所有的类的前面都加public修饰。 7 Father f = new Father(); 8 //f.show(); 9 //f.show2(); 10 //f.show3(); 11 f.show4(); 12 System.out.println("--------------"); 13 14 Son2 s = new Son2(); 15 //s.show(); 16 //s.show2(); 17 s.show3(); 18 s.show4(); 19 } 20 }
在不同包下的子类中,测试结果为:(注意:在子类代码中分别测试了父类和子类)
=============================================================================
5、
1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中 同一个包下的子类和无关类 不同包下的子类 不同包下的无关类 5 private Yes No No No 6 默认 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 public class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package cn.qx; 2 3 import com.liuyi.Father; 4 5 class Test2 { 6 public static void main(String[] args) { 7 Father f = new Father(); 8 //f.show(); 9 //f.show2(); 10 //f.show3(); 11 f.show4(); 12 } 13 }
在不同包下的无关类中,测试结果为:
=============================================================================
以上是关于Java中,权限修饰符的权限测试的主要内容,如果未能解决你的问题,请参考以下文章