外类的受保护修饰符

时间:2018-01-17 13:13:11

标签: java inner-classes protected

如果外部类在Java中没有“protected”修饰符,因为它的子类只能使用它,为什么Java允许对源文件中的类(公共除外)进行修饰,甚至虽然它的可访问性范围更低?

class A{
   private class B{}
   protected class C{}
   public class D{}
   class E{}
}
public class Test{
public static void main(String[] args){
   System.out.println("Test class");
   }
}

此处单个源文件的外部类A具有默认访问修饰符。现在,底部是源文件中的“A”类,Java中不允许这样的类:

protected class A{
   private class B{}
   protected class C{}
   public class D{}
   class E{}
}
public class Test{
public static void main(String[] args){
   System.out.println("Test class");
   }
}

我的问题是,如果外部类允许使用默认修饰符,为什么不允许使用受保护的修饰符,即使默认修饰符的范围小于。可以通过Same类,Same包和Sub-class访问受保护的。只能通过Same class和Same包访问Default。为什么第二个进程无效,即使第一个进程有效。我的问题是,如果保护没有意义,默认有意义吗?

0 个答案:

没有答案