`
wf_chn
  • 浏览: 8703 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

浅谈java protected关键字

阅读更多
前提:不在同一个包下,在同一个包下就变成package level的访问了,性质不一样
结论:只能访问自己继承的protected 部分,其他的包括父类的,或者其他实现了父类的派生类的,不能访问
这里再给出《java in a nutshell》中的一段话:
protected access requires a little more elaboration. Suppose class A declares a protected field x and is extended by a class B, which is defined in a different package (this last point is important). Class B inherits the protected field x, and its code can access that field in the current instance of B or in any other instances of B that the code can refer to. This does not mean, however, that the code of class B can start reading the protected fields of arbitrary instances of A! If an object is an instance of A but is not an instance of B, its fields are obviously not inherited by B, and the code of class B cannot read them.

参考:http://zhangjunhd.blog.51cto.com/113473/19287


随便写了点示例
package pTest.pkg1;

public class SuperClass {
	protected int x;
}

package pTest.pkg1;

public class SubClassA extends SuperClass {

	void printX(){
		System.out.println(x);
	}
}

package pTest.pkg2;

import pTest.pkg1.SubClassA;
import pTest.pkg1.SuperClass;

public class SubClassB extends SuperClass {
	public static void main(String[] args) {
		SubClassB b = new SubClassB();
		System.out.println(b.x);
		SubClassA a = new SubClassA();
//		System.out.println(a.x);
		SuperClass s = new SuperClass();
//		System.out.println(s.x);
		
	}
}


把注释去掉,即可看到报错信息

the field SuperClass.x is not visible
分享到:
评论

相关推荐

    java的关键字及用法

    揽括了java中常见的关键字及用法,包括Abstract、instanceof、private、protected等等。

    Java关键字及其作用

    protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。可以在声明protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、...

    java中public、protected、默认、private关键字

    java中public、protected、默认、private关键字

    Java常用关键字总结

    1、protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。 2、可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用...

    46个java关键字介绍和使用大全含示例(值得珍藏)

    Java关键字是Java编程语言中预定义的保留字,用于表示特定的语言功能或概念。它们在语法上具有特殊的意义,不能用作变量名、类名或其他标识符。掌握Java关键字的作用对于编写正确的Java代码至关重要。这些关键字包括...

    java中50个关键字的作用

    java中50个关键字的作用 Abstract break continue final protected ==

    JAVA中的关键字和保留字

    protected - 12 - public - 12 - return - 13 - short - 13 - static - 13 - super - 14 - switch - 14 - synchronized - 15 - this - 16 - throw - 16 - throws - 16 - transient - 17 - try - 17 - true - 18 - ...

    java中protected的权限

    NULL 博文链接:https://837062099.iteye.com/blog/1609340

    详解Java编程中protected修饰符与static修饰符的作用

    主要介绍了Java编程中protected关键字与static关键字的作用,是Java入门学习中的基础知识,需要的朋友可以参考下

    java关键字.docx

    protected:受保护的,用于定义一个受保护的成员或方法。 public:公共的,用于定义一个公共的成员或方法。 return:返回,用于返回一个值。 short:短整型,用于表示一个短整数。 static:静态,用于定义一个静态...

    概述C++中的 public protected private friend关键字的用法

    一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何...下面在看下c++ public private protected关键字 1、当在类的内部使用这三个关键字,表示访问权限:  public: 可以被任意访问。  protected:

    Java入门教程(微学苑)-part1

    3.22 再谈Java包 56 3.23 如何实现包 56 3.24 包的调用 56 3.24.1.1 1) 在每个类名前面加上完整的包名 57 3.24.1.2 2) 通过 import 语句引入包中的类 57 3.25 类的路径 57 3.26 包的访问权限 58 3.27 源文件的声明...

    java课程资源第六章

    复用类 组合、继承:语法、选择、使用 protected关键字 向上转型 Final关键字 初始化与类加载

    Delphi 关键字详解

    //Abstract关键字必须与Virtual或Dynamic关键字同时使用, 因为抽象方法必须被覆盖式实现. //抽象类不能实例化, 抽象方法不能包含方法体. type TDemo = class private protected procedure X; virtual; abstract;...

    Java类protected继承链访问控制机制研究.pdf

    Java类protected继承链访问控制机制研究

    java关键字总结

     protected  受保护的  当前包内可用  private  私有的  当前类可用  2).定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个)  关键字  意思  备注,常用  class  类  ...

    基于Java protected的深入理解

    本篇文章是对Java protected进行了详细的分析介绍,需要的朋友参考下

    C++关键字大全(67个).txt

    C++关键字大全(67个) asm auto bad_cast bad_typeid bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum except explicit extern false finally float ...

    浅谈php中的访问修饰符private、protected、public的作用范围

    以上这篇浅谈php中的访问修饰符private、protected、public的作用范围就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:php中访问修饰符的知识点总结PHP...

    Java——static关键字总结(含义、定义属性或方法、使用时机)

    static关键字,主要描述全局的概念,利用该属性可以定义属性和方法,但是90%情况下很少直接编写static。 现在假设定义一个只描述中国人的类,类中包含:姓名、年龄、国家,按之前的概念设计如下: protected void ...

Global site tag (gtag.js) - Google Analytics