根据留档(http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)的第二个表,没有标识符的成员对子类不可见。
但是,当我运行下面的示例代码时,“1”(b的内容)被打印出来!
class Class1{
private int a=0;
int b=1;
protected int c=2;
public int d=3;
}
class Class2 extends Class1{ }
public class HelloWorld{
public static void main(String []args){
Class2 klass=new Class2();
System.out.println(klass.b);
}
}
如果没有访问修饰符的成员不能从子类访问,那么为什么在本例中打印它
它应该抛出一个错误,就像在私有访问修饰符中一样,不是吗?
在Java中,默认、公共、受保护和私有之间的区别
Java语言规范写道:
>
...
引用(类、接口或数组)类型的成员(类、接口、字段或方法)或类类型的构造函数只有在类型可访问且成员或构造函数声明允许访问时才可访问:
>
如果成员或构造函数被声明为公共,......
否则,如果成员或构造函数被声明保护,...
否则,如果成员或构造函数声明为私有。。。
否则,我们说存在默认访问,只有在从声明类型的包中进行访问时才允许默认访问。
所以访问是否来自子类并不重要,重要的是包。
由于Class1
和Class2
声明了缺省访问权限,因此要编译,HelloWorld
必须与它们在同一个包中。
在 Java 语言中提供了多个作用域修饰符,其中常用的有 public、private、protected、final、abstract、static、transient 和 volatile,这些修饰符有类修饰符、变量修饰符和方法修饰符。本文将详细介绍访问控制修饰符。 在实际生活中,如果要获取某件物品,与其直接穿过堡垒的墙壁,从而导致墙壁毁灭和破坏,不如通过门口的警卫请求进入堡垒的许可。一般而言
主要内容:私有(Private)成员,实例,保护(Protected)成员,实例,公共(Public)成员,实例,作用域保护,实例Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。 Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。 私有(Private)成员 用 private 关键字修饰,带
本文向大家介绍VBA 访问修饰符,包括了VBA 访问修饰符的使用技巧和注意事项,需要的朋友参考一下 示例 该Dim语句应保留用于局部变量。在模块级别,首选显式访问修饰符: Private 对于私有字段,只能在声明它们的模块中访问。 Public 用于公共字段和全局变量,可以通过任何调用代码进行访问。 Friend 用于项目内公共变量,但其他引用VBA项目无法访问(与加载项相关) Global也可以
我想如果一个类被声明为public,它可以从任何地方访问。但是为什么eclipse称之为错误呢?
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符符,默认情况下,Scala 对象的访问级别都是 public。 Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。 私有(Private)成员 用 private 关键字修饰,带有此标记的成员仅在包含了成员
JAVA访问修饰符的可访问性 公众 在 同一班级 同一套餐 子类 宇宙/其他软件包 我在互联网上寻找这些问题的答案,因为我有多个答案。一个视频说未声明的访问修饰符是公共的,而我看到另一个书面来源说未声明的访问修饰符在子类和其他包中没有限制。试图确认哪个是真的。