簡體   English   中英

我可以為抽象類制作DataOutputStream方法,並將其用於子類嗎?

[英]Can I make a DataOutputStream method for an abstract class and use this for the subclasses?

我有一本書課:

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方法來編寫超類字段來開始,並且調用者可以選擇在何處寫入數據,而不是被書類強迫在特定位置使用文件。

該方法還應該拋出IOException,而不是忽略它。 這樣,呼叫者可以執行他想處理的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM