gpt4 book ai didi

java - 为什么InputStream方法不是抽象的?

转载 作者:行者123 更新时间:2023-12-01 18:30:03 24 4
gpt4 key购买 nike

java.io 文档说像 close()、mark()、available() 等 InputStream 方法不是抽象的。然而,根据 Java 文档,它们在默认实现中不执行任何操作。我的问题是:有原因吗?我的意思是,如果这个方法默认不执行任何操作,那么如果我决定创建一个 InputStream 子类,显然我将不得不重写它们。因此,在我看来,将这些方法抽象化会更正确,因为如果我们不这样做,我很容易忘记重写其中一个方法,并且它将无法正常工作。

最佳答案

不使它们抽象的目的正是这样,如果您不打算支持可选操作,则不必放入空方法体。 “什么都不做”与“具有默认行为”不同,在 InputStream 的情况下,“默认行为”与实际上什么都不做(mark 是一个无操作,因为标记不是“t 始终支持)抛出异常以指示无法执行请求的操作(重置)。任何提供这些功能的流都将使用相同的行为,并且任何支持它们的流都必须使用特定的实现进行覆盖。

关于java - 为什么InputStream方法不是抽象的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638996/

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