protect是java中的权限关键字,一般是指定使用的范围。

protected:

父类的被protected修饰的类成员包内可见,并且对其子类可见。

父类与子类不在同一个包里,子类只可以访问从父类继承的protected成员,不能访问父类实例化的成员。

我们可以通过以下几个关于protected方法可见性的例子来进一步掌握protected关键字。在碰到涉及protected成员的调用时,首先要确定出该protected成员来自何方,其可见性范围是什么,然后就可以判断出当前用法是否可行了

例子://示例一

package p1;

public class Father1 {

protected void f() {} // 父类Father1中的protected方法

}

package p1;

public class Son1 extends Father1 {}

package p11;

public class Son11 extends Father1{}

package p1;

public class Test1 {

public static void main(String[] args) {

Son1 son1 = new Son1();

son1.f(); // Compile OK ----(1)

son1.clone(); // Compile Error ----(2)

Son11 son = new Son11();

son11.f(); // Compile OK ----(3)

son11.clone(); // Compile Error ----(4)

}

}

对于上面的示例,首先看(1)(3),其中的f()方法从类Father1继承而来,其可见性是包p1及其子类Son1和Son11,而由于调用f()方法的类Test1所在的包也是p1,因此(1)(3)处编译通过。其次看(2)(4),其中的clone()方法的可见性是java.lang包及其所有子类,对于语句“son1.clone();”和“son11.clone();”,二者的clone()在类Son1、Son11中是可见的,但对Test1是不可见的,因此(1)(3)处编译不通过。

总结

protected是最难理解的一种Java类成员访问权限修饰词。在编程中,碰到涉及protected的调用时,首先要确定出该protected成员来自何方,其可见性范围是什么,然后就正确无误的使用了。

java的protect_java中protect是什么相关推荐

  1. 关于java的public,private,protect,以及默认权限的理解

    2019独角兽企业重金招聘Python工程师标准>>> 关于java的public,private,protect,以及默认权限的理解 1.private 只允许在本类中使用 方法或 ...

  2. java的public_java中public用法

    一.Java访问权限饰词(access specifiers) Java有public.protect.friendly.private四种访问权限,并且这四访问权限的访问范围越来越小. 1. fri ...

  3. java从字符串中提取数字

    1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...

  4. JAVA Web项目中所出现错误及解决方式合集(不断更新中)

    JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...

  5. Java类Demo中存在_Java中的数据类型转换

    先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...

  6. Java数据结构一 —— Java Collections API中的表

    1.Collection接口 位于java.util包中,以下是重要的部分. 1 public interface Collection<AnyType> extends Iterable ...

  7. Java之戳中痛点 - (4)i++ 和 ++i 探究原理

    先看一个例子: package com.test;public class AutoIncrement {public static void main(String[] args) {int a=7 ...

  8. IDEA报错解决:Error:(33, 35) java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)

    晚上在用IDEA的时候遇到了报错: Error:(33, 35) java: -source 7 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式) ...

  9. return true Java_[Java教程]js中return,return true,return false的用法及区别

    [Java教程]js中return,return true,return false的用法及区别 0 2015-11-16 23:00:03 1.语法及返回方式 ①返回控制与函数结果 语法为:retu ...

最新文章

  1. Kubernetes-基于EFK进行统一的日志管理
  2. java平衡二叉树,最全Java知识总结
  3. GNU C和ANSI C的区别
  4. 直播预告 | 东南大学周张泉:基于知识图谱的推理技术
  5. 16小时31分12秒!2019天猫双11成交额超2135亿元,超越2018年全天成交额
  6. HTML5的离线存储有几种方式?
  7. 计算点到SVM超平面的距离
  8. dsp java_GitHub - GrayOxygen/JavaDsp: 数字信号处理(DSP)方面的Java封装,包含常用的一些处理方法,如滤波、信号变换等等。...
  9. APP 性能测试工具
  10. 在开发IE插件时,遇到的各种问题记录
  11. c语言编译九行菱形,C语言打印菱形
  12. [C++] 开灯问题(两个思路)
  13. 有一页式系统,其页表存放在内存中. (1)如果对内存的一次存取需要1.5微秒,问实现一次页面访问的存取时间是多少? (2)如果系统增加有快表,平均命中率为85%,.....
  14. 移动端h5页面软键盘弹出后 背景图片被顶上去
  15. 功能测试——抓包工具(fiddler)
  16. Ubuntu10.04下载Android-x86(froyo-x86)源代码步骤
  17. IntelliJ IDEA 如何实现代码展示自动换行
  18. C语言实现不带头结点的单链表逆置的三种方法
  19. 人不为己,天诛地灭:踢掉蹭网的人
  20. 用Java实现相机滤镜功能(一)

热门文章

  1. 计算机校本培训心得,校本培训心得体会总结
  2. 小米4c android版本号,小米4c的手机系统是什么?能升级安卓5.0吗?
  3. 《算法竞赛进阶指南》tarjan做法 银河
  4. app小程序手机端Python爬虫实战01-Uiautomator2自动化抓取工具介绍
  5. Java、JSP汽车零件销售管理系统的设计与实现
  6. java熔断器_详解spring cloud分布式关于熔断器
  7. 熔断器Hystrix
  8. 百度网盘直链下载教程
  9. 实例讨论数据可视化的配色思路
  10. thingsboard使用地图和表可视化资产数据~看完还不会 你pan我