2
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 

修飾子 (デフォルトの修飾子) は、サブクラスではなく、同じパッケージからのみアクセスできます。

サブクラスが同じパッケージにある場合はどうなりますか? サブクラスからアクセスできますか?

4

2 に答える 2

2

サブクラスが同じパッケージにある場合はどうなりますか? サブクラスからアクセスできますか?

はい。「サブクラスを使用しない」というのは、「サブクラスに自動的にアクセスできない」ということです。サブクラスにアクセスできないように明示的に禁止されているわけではありません。

正確な詳細については、Java 言語仕様のセクション 6.6を参照してください。特に:

それ以外の場合は、型が宣言されているパッケージ内からアクセスが発生した場合にのみ許可されるデフォルト アクセスがあると言います。

于 2012-12-15T09:24:31.257 に答える
1

修飾子 (デフォルトの修飾子) は、サブクラスではなく、同じパッケージからのみアクセスできます。

はい、アクセス可能です。同じパッケージ内のすべてのクラスで修飾子 (デフォルトの修飾子) にアクセスできません。

    pkg1;
    class CWithDefAccess{
    }

    pkg1;
    public class anotherclass {
       //can access CWithDefAccess as they are in the same package
    }

    pkg1;
    public class Foo extends CWithDefAccess {
    //can access CWithDefAccess as they are in the same package
    }

    pkg1; 
    public class Baz extends anotherClass{
    //can access CWithDefAccess as they are in the same package
    }
于 2012-12-15T09:24:41.413 に答える