我想知道嵌套抽象类意味着什么?例如,
abstract class A{
abstract class B{
}
}
是否有我们可能需要的任何用例或场景,例如设计?或者这种模式有什么有用的吗?为什么 Java 允许我们这样做?
在设计中,您需要基类class A
仅提供其派生类的接口。这意味着,您不希望任何人实际实例化基类的对象。你只想upcast到它(隐式向上转换,这给你多态行为),以便可以使用它的接口。这是通过使用abstract关键字使该类抽象来实现的。另一方面,您只想使用部分功能class A
所以你创造class B
(作为孩子)减少系统之间的耦合或实现依赖性并防止重复.
但请记住,当您定义内部类时,没有内部类的代码更易于维护和可读。当访问外部类的私有数据成员时,JDK编译器会在外部类中创建包访问成员函数,以便内部类访问私有成员。这留下了一个安全漏洞。一般来说,我们应该避免使用内部类。仅当内部类仅与外部类的上下文相关时才使用内部类,并且/或内部类可以设为私有,以便只有外部类可以访问它。内部类主要用于实现在外部类上下文中使用的辅助类,例如迭代器、比较器等。关于abstract class
,对于助手来说应该是抽象的,假设你的helpers应该太复杂了,无法为它们编写抽象形式。
就您而言,我不记得嵌套抽象类的广泛使用,也许在Swing
世界。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)