gpt4 book ai didi

java - 为什么在java中嵌套抽象类

转载 作者:太空狗 更新时间:2023-10-29 22:41:24 26 4
gpt4 key购买 nike

我想知道嵌套抽象类是什么意思?例如,

   abstract class A{

abstract class B{

}
}

是否有任何我们可能需要的用例或场景,例如设计?或者这种模式有什么用处吗?为什么 Java 允许我们这样做?

最佳答案

在设计中,您希望基类 class A 只为其派生类提供一个接口(interface)。这意味着,您不希望任何人实际实例化基类的对象。您只想对其进行向上转换(隐式向上转换,这为您提供多态行为),以便可以使用其接口(interface)。这是通过使用 abstract 关键字使该类抽象来实现的。另一方面,您只想使用 class A 的部分功能,因此您创建 class B(作为子级)以减少系统和系统之间的耦合或实现依赖性防止重复

但是请记住,当您定义内部类时,没有内部类的代码更易于维护和阅读。当您访问外部类的私有(private)数据成员时,JDK 编译器会在外部类中创建包访问成员函数,供内部类访问私有(private)成员。这留下了一个安全漏洞。一般来说,我们应该避免使用内部类。仅当内部类仅在外部类的上下文中相关和/或内部类可以设为私有(private)时才使用内部类,以便只有外部类可以访问它。 内部类主要用于实现在外部类的上下文中使用的辅助类,如迭代器、比较器等。关于抽象类,它应该是帮助者的抽象,假设你的帮助者应该太复杂而不能为他们写抽象形式。

在您的情况下,我不记得嵌套抽象类的广泛使用,也许在 Swing 世界中。

关于java - 为什么在java中嵌套抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13437922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com