Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,内部类是否可以从外部类继承扩展?_Java_Inheritance_Inner Classes - Fatal编程技术网

在java中,内部类是否可以从外部类继承扩展?

在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类的受保护和

例如,如果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”中的任何设置/拆卸方法。同意。我认为在我的情况下这样做是有意义的(在对上述评论的回应中有描述),但除此之外没有太多。我明白为什么这类事情不可能发生。