gpt4 book ai didi

java - 我可以为抽象类创建一个 DataOutputStream 方法并将其用于子类吗?

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

我有一个读书课:

public abstract class Book
{
private String author, title;
private int pages;
private double price;
Book next;

public Book( String f, String t, int sider, double p )
{
author = a;
title = t;
pages = pa;
price = p;
next = null;
}

以及小说、教科书等子类。我需要一种方法来使用 DataOutputStream 将它们写入文件。我在下面编写了这段代码,但我不确定我是否走在正确的道路上。我如何在子类中使用它?

public void writeObjectToFile()
{
try
{
FileOutputStream fos = new FileOutputStream("book.something");
DataOutputStream dos = new DataOutputStream(fos);

dos.writeUTF(author);
dos.writeUTF(title);
dos.writeInt(pages);
dos.writeDouble(price);


}catch (IOException e){
e.printStackTrace();
}
}

假设课本课是这样的:

class Textbook extends Book
{
private String subject;

public Textbook( String a, String t,int pa, double p, String sub )
{
super( a, t, pa, p );
subject = sub;
}

有什么想法吗?我不允许使用 ObjectOutputStream

最佳答案

该方法应将 OutputStream 作为参数,而不是自行创建它。

这样,子类就可以通过调用 super 方法来写入父类(super class)字段,调用者可以选择将数据写入哪里,而不是被书籍类强制使用特定位置的文件。

该方法还应该抛出 IOException,而不是忽略它。这样,调用者就可以做他想做的事情。

关于java - 我可以为抽象类创建一个 DataOutputStream 方法并将其用于子类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529715/

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