gpt4 book ai didi

java - 扩展实现另一个类的抽象类

转载 作者:行者123 更新时间:2023-11-30 08:36:26 26 4
gpt4 key购买 nike

我是 OOP 的新手,正在浏览与解析器相关的项目代码。这包含以下类和接口(interface)。

    public interface Parser {
}

public abstract class AbstractParser implements Parser{
}

public class CSVParser extends AbstractParser{
}

public class XMLParser extends AbstractParser{
}

我不明白为什么要这样做?

最佳答案

它是一个基本的 OOP 设计,它基本上是一个“Program for Interface rather than implementation”的例子,为了更清楚地阅读一次 SOLID 设计原则。

现在在这段代码中,有一个Parser接口(interface),所以如果任何类是一个Parser,那么它必须实现它,所以再说一遍,如果我们想给每个解析器一些默认行为,这就是有 AbstractParser 的原因。

要理解这段代码,你必须看一次Collections的JDK源代码。在这里你会看到,List, Set, Map 是接口(interface),然后你有 AbstrictList, AbstractSet, AbstractMap 类,它们被定义为抽象的,并且有一些方法的默认实现,比如 大小()。然后你有具体的实现,比如 ArrayList, HashMap, HashSet 你可以实例化。我会建议您完成 Collections 框架设计,然后 SOLID principles

关于java - 扩展实现另一个类的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37784235/

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