2012-03-02 28 views
0

我有一本書類:我可以爲抽象類創建DataOutputStream方法並將其用於子類?

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

回答

1

該方法應該將OutputStream作爲參數,而不是自己創建它。

通過這種方式,子類可以通過調用super方法來開始編寫超類字段,調用者可以選擇在哪裏寫數據,而不是由書類強制在特定位置使用文件。

該方法還應拋出IOException,而不是忽略它。這樣,來電者可以做他想要處理的事情。

+0

非常感謝你這是我失蹤。真的很有幫助。 – user938773 2012-03-02 09:03:41

相關問題