pet*_*ter 17 java abstract-class
我想知道有一个嵌套的抽象类是什么意思?例如,
abstract class A{
abstract class B{
}
}
Run Code Online (Sandbox Code Playgroud)
是否存在我们可能需要的用例或场景,例如设计?或者这种模式中有用的东西吗?为什么Java允许我们这样做?
在设计中,您希望基类class A仅为其派生类提供接口.这意味着,您不希望任何人实际实例化基类的对象.您只想向上转发(隐式向上转换,它会为您提供多态行为),以便可以使用它的接口.这是通过使用abstract关键字使该类抽象来实现的.另一方面,您只想使用部分功能,class A因此您可以创建class B(作为子项)以 减少系统之间的耦合或实现依赖关系并防止重复.
但是在定义内部类时要记住,没有内部类的代码更易于维护和读取.当您访问外部类的私有数据成员时,JDK编译器在外部类中创建包访问成员函数,以便内部类访问私有成员.这留下了一个安全漏洞.一般来说,我们应该避免使用内部类.仅当内部类仅与外部类的上下文相关时才使用内部类,并且/或者内部类可以设置为私有,以便只有外部类可以访问它.内部类主要用于实现辅助类,如迭代器,比较器等,它们在外部类的上下文中使用.关于abstract class,帮助者应该是抽象的,假设你的助手 应该太复杂,不能为他们写抽象的形式.
在您的情况下,我不记得嵌套抽象类的广泛使用,可能在Swing世界上.