java - 子类是否总是与 Java 中的父类(super class)位于同一个包中?

标签 java inheritance

所以定义了两个类:

    public class SuperClass {
        int count = 5;
        SuperClass() {
        }

    }

    public class SubClass extends SuperClass {
        SubClass() {
            super();

    }

SubClass sub = new Subclass();
System.out.println(sub.count); // prints out 5

除非我对默认可见性修饰符的理解有误,否则我认为默认修饰符是只有同一个包中的类才能访问变量count。所以这意味着我的 SubClass 与我的 SuperClass 在同一个包中,但我没有在我的代码中的任何地方指定它们在同一个包中。这是否意味着子类总是与父类(super class)在同一个包中?

最佳答案

你是对的:默认访问修饰符(也称为 package-private )如果在另一个包中,则不能从子类访问。在您的情况下-两个类都在同一个目录中,这隐含地意味着它们在同一个包中。

关于java - 子类是否总是与 Java 中的父类(super class)位于同一个包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621886/

相关文章:

Angular 组件继承

java - 使用抽象/父类(super class)进行类的内部工作。访问修饰符的良好实践

Java 内部类和继承 : Is there a duplicate outer this reference?

java - "Fastest"Java实现的哈希函数,比较部分文件

java - 在 super 构造函数运行之前初始化字段?

c++ - 从基类静态转换为派生类后找不到成员函数

java - 你如何调试 Java 小程序?

Java:向子类构造函数添加字段?

java - Android WebView 文件上传

c++ - 为什么这个 typedef 允许我在此模板中使用基类成员函数指针?