因此,从句子AA我得出结论,只有public和protected超类的方法可以被重写
,sentenceBB也是如此
所以我搞混了两个句子之间的区别是什么?
你来源的句子实际上有点不清楚。
语句A还包括默认声明的方法。这也被称为“包私有”。如果只是省略方法上的访问修饰符,就会发生这种情况。
包之外的类将无法重写它们。
我对Java/Android中的继承/接口有点困惑,不确定我是否走上了正确的道路。基本上,我在Android系统中使用Parcelable,由于方法未定义,所以会出现错误。 我有一个动物超类和几个子类(狗、猫等)。在第一个活动中,您选择一只动物,然后它将其打包并传递给第二个活动: 问题是“updateImage”只存在于子类中,因此它不会在这里编译。我不希望这个方法出现在超类中,因为输出根据动物的
问题内容: 我有一个抽象类,封装和它的一个子类,在包。有一个名为的受保护成员。 在: 上线 和 我收到以下错误: 字段Relation.mStructure不可见 如果我将两个类放在同一包中,则效果很好。谁能解释这个问题? 问题答案: 它有效,但是只有您自己的孩子会尝试访问它 自己的 变量,而不是其他实例的变量(即使它属于同一继承树)。 请参阅以下示例代码以更好地理解它: 如果我们尝试使用进行编译
问题内容: 嗨,我想知道我的问题是否有简单的解决方案, 我有一个: 它们都实现一个方法- 调用时飞。我知道我可以使用此方法访问超类的通用方法和属性 很好-但是现在我想访问子类具有的方法。我可以通过将as 强制转换为: 在我的情况下,我不想这样做,因为这意味着我对的每个子类型都有3套上述代码。 似乎有点多余,是否有更好的方法? 问题答案: 实际上,从超类执行此操作不是一个好方法,因为每个子类的行为都
问题内容: 这是相同问题的详细阐述版本。 我们无法访问子类(位于不同包中)的子类中的(超类的)受保护变量。我们只能访问supeclass的继承变量。但是,如果将修饰符更改为“ protected static”,那么我们也可以访问超类的变量。为什么会这样呢? 这是我试图解释的相同代码段。 以上行为是预期的。但是我的问题是,如果我们将超类实例变量“ a”的访问修饰符更改为“保护静态”,那么我们也可以
下面是对同一问题稍加阐述的版本。 我们不能访问子类中的受保护变量(超类的),因为子类在不同的包中。我们只能访问supeclass的继承变量。但是如果我们将修饰符更改为“受保护的静态”,那么我们也可以访问超类的变量。为什么会这样? 下面是我试图解释的相同代码片段。 上述行为在意料之中。但我的问题是,如果我们将超类实例变量“a”的访问修饰符更改为“protected static”,那么我们也可以访问
如果我声明以下密封层次结构 没有使用模块(没有module-info.java),并尝试用Maven编译它 我知道https://openjdk.java.net/jeps/409和这个部分: 许可指定的类必须位于超类附近:在同一个模块中(如果超类在命名模块中)或在同一个包中(如果超类在未命名模块中)。 然而,Maven在编译时不应该默认使用类路径吗?这一限制是否可以避免? 如果没有,这是否开创了