在java中,内部类是否可以从外部类继承扩展?
例如,如果C类和D类都能从B类的子类中获益;这些内部类是否可以从外部类继承扩展,而不是单独扩展每个类在java中,内部类是否可以从外部类继承扩展?,java,inheritance,inner-classes,Java,Inheritance,Inner Classes,例如,如果C类和D类都能从B类的子类中获益;这些内部类是否可以从外部类继承扩展,而不是单独扩展每个类 public class A extends B { public class C { } public class D { } } 让C和D扩展B是非常混乱的 C和D的实例已经可以访问B对象的封闭实例,因此可以访问B的字段和方法。C类和D类将可以访问a类的所有成员 如果B类在另一个包中,C类和D类将有权访问B类的受保护和
public class A extends B {
public class C {
}
public class D {
}
}
让C和D扩展B是非常混乱的
C和D的实例已经可以访问B对象的封闭实例,因此可以访问B的字段和方法。C类和D类将可以访问a类的所有成员
如果B类在另一个包中,C类和D类将有权访问B类的受保护和公共成员
如果B类在同一个包中,C类和D类将有权访问B类的默认、受保护和公共成员
我们需要注意的是,C类和D类都不扩展A类。它们都扩展对象你能举出一个例子说明这有什么意义/有用吗?使用TestNG框架,我在B类中有
@BeforeSuite
,@AfterSuite
,@BeforeClass
等由@Test
类继承(本例中为“A”),并相应地为每个测试套件/类/方法执行。但是,如果从内部类“A”运行@Test
方法,则不会执行类“B”中的任何设置/拆卸方法。同意。我认为在我的情况下这样做是有意义的(在对上述评论的回应中有描述),但除此之外没有太多。我明白为什么这类事情不可能发生。