SuperClass / SubClass继承范围验证[重复]

问题描述 投票:-1回答:1

注意:在错误地将其标记为重复之前,请阅读整个内容。

所以我不确定这是否是写的,我找不到一个简单的图表来回答它: - 如果你在超类中有一个PUBLIC,PROTECTED,ORPACKAGE PRIVATE方法或字段并且子类是在相同的包,可以通过新的子类对象访问这些方法或字段,如果字段或方法是PRIVATE,那么它不能? - 如果你在超类中有一个PUBLIC,OR PROTECTED方法或字段并且子类在一个不同的包中,那么它是真的,那么包中的OUTSIDE或WITHIN类可以通过一个新的子类对象访问这些方法或字段,如果字段或方法是PACKAGE PRIVATE,还是PRIVATE,那么它不能?

换句话说,所有访问组合(32种组合):public,protected,package private和private用于方法,字段,用于相同或不同包中的子类,由类创建子类对象的类访问相同或不同的包装。请注意,这个问题与“重复”之间的主要区别在于我想知道在程序包内部/外部使用NON-SUBCLASSES进行访问。不仅仅是SUBCLASS内的东西。重复项不够具体,因为有一些微小的规则并不像4 x 2表那么简单。例如,对于protected,包外的子类不能在超类对象上运行超类方法,只能运行子类对象。像“重复”这样的小事情没有回答。

并且你可以在将它标记为重复之前阅读整个dang事物。我解释了为什么不是,但懒惰不读全部内容,也不回答问题。

java inheritance subclass
1个回答
0
投票

我在文档上找到了这个表:

                  Access Levels

Modifier    Class Package Subclass World
public        Y      Y        Y      Y
protected     Y      Y        Y      N
no modifier   Y      Y        N      N
private       Y      N        N      N

根据我的经验:

public:任何类都可以访问 protected:只允许同一个包中的类或继承该类的类可以访问 私有:只有班级才能访问。子类无法访问其父级的私有字段/方法。 Docs

© www.soinside.com 2019 - 2024. All rights reserved.