在创建 FileInputStream 对象时使用 InputStream 而不是 FileInputStream 有什么区别
2022-09-02 02:58:21
这可能是一个愚蠢的问题,但我想知道后台操作的区别。
InputStream is = new FileInputStream(filepath);
FileInputStream is = new FileInputStream(filepath);
上述两行代码之间有什么区别,在什么场景中使用它们。
这可能是一个愚蠢的问题,但我想知道后台操作的区别。
InputStream is = new FileInputStream(filepath);
FileInputStream is = new FileInputStream(filepath);
上述两行代码之间有什么区别,在什么场景中使用它们。
FileInputStream
扩展:它是专为读取文件而设计的输入流的专用版本。InputStream
根据输入流的用法,有几种实现。
通常,最好使用代码中所需的最高类型。因此,如果您的代码需要从 中读取数据,但不是专门从 中读取数据,则应使用 。然而,如果你确实需要保持你的对象的信息是 a 而不仅仅是一个 ,那么你应该保留类型。InputStream
FileInputStream
InputStream
FileInputStream
InputStream
FileInputStream
没有真正的区别。 扩展 ,因此您可以将对象指定为对象。最后,它是相同的对象,因此将发生相同的操作。FileInputStream
InputStream
InputStream
FileInputStream
此行为称为多态性,在面向对象编程中非常重要。
您的第一行代码可能比第二行代码更可取,因为它不会将您锁定在 .FileInputStream
这是面向对象编程的优势之一。如果不指定类型,您可以更改以后使用的流类型。如果您确定只需要一个 here,请使用第二行代码。FileInputStream