博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的权限修饰符的理解
阅读量:6546 次
发布时间:2019-06-24

本文共 1037 字,大约阅读时间需要 3 分钟。

首先了解概念:

在java中有四种权限修饰符:范围从大到小分别是:public、protect、default(friendly)、private,它们之间的区别是:

 

  • public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
  • protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
  • default:  这个访问权限可能是很多人容易所忽视的,即不写任何关键字。默认权限(同包权限)即:包内可访问,包外不可访问,不管是子类还是没有继承关系的类。
  • private:  只能在当前类中使用,外部不能访问。

 

 

 

理解:什么是同包与不同包?

这很好理解啊,假如把包看成文件夹,包里面的东西就是文件,在同一个文件夹里面文件的就是同包,看代码:

1 package a: 2 //function1声明在a包中 3 public class function1{ 4    //声明的变量与方法; 5 } 6 package b; 7 //function2声明在b包中 8 public claass function2{ 9      //声明的变量与方法;10 }

 

首先说同包,先看一个表(打勾的表示可以访问):

 

作用域

   当前类

  子孙类

  外部类

public

      √

     √

    √

protected

      √

     √

    ×

Default(friendly)

      √

     √

    √

private

      √

     ×

    ×

 结论:在同一个包的前提下,在继承时,子类只能继承父类中的public、protected以及default访问权限的成员变量或方法,并且继承之后,这些成员变量或方法的访问权限和之前的一样,如父类中是public,继承后还是public。

在不同包的情况下,看表:

 

作用域

    当前类

  子孙类

   外部类

public

      √

    √

     √

protected

      √

    √

     ×

Default(friendly)

      √

    ×

     ×

private

      √

    ×

     ×

结论:在不同包的前提下,在继承时,子类只继承父类中的publicprotected访问权限的成员变量或方法作为子类自己的成员变量或方法。

 

转载于:https://www.cnblogs.com/qq1871707128/p/6080189.html

你可能感兴趣的文章
linux常用指令
查看>>
前段优化——雅虎的14条优化规则
查看>>
Oracle使用PLSQL连接时,导入导出问题
查看>>
string.format() 的使用
查看>>
DrawerLayout打开时,底部视图仍然能被单击的问题
查看>>
Percona-mysql MHA高可用实战方案
查看>>
云风<<代码大全>>读书笔记
查看>>
JS 类型分类,不同类型值比较的区别
查看>>
iCarousel简介
查看>>
Script:收集Flashback Database Log诊断信息
查看>>
org.apache.tomcat.dbcp.dbcp.SQLNestedException
查看>>
oracle RAC 错误信息 prkh-1010
查看>>
可重复分组报表
查看>>
【Hadoop】- MapReduce 框架详细介绍
查看>>
梦游西藏
查看>>
YUM、RPM 与APT 、DPKG 常用等价命令
查看>>
ubuntu---使用命令行下载文件
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>