2012-03-02 3 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을 사용하여 파일에이 메서드를 작성해야합니다. 아래에서이 코드를 만들었지 만 올바른 경로에 있는지 확실하지 않습니다. 서브 클래스에서 어떻게 사용합니까?

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; 
} 

어떤 아이디어 :

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(); 
    } 
} 

는의 교과서 클래스는이처럼 가정 해 봅시다? ObjectOutputStream을 사용할 수 없습니다.

답변

1

메서드는 OutputStream을 자체 생성하는 대신 인수로 가져와야합니다.

슈퍼 클래스 필드를 작성하기 위해 super 메소드를 호출하여 하위 클래스를 시작할 수 있으며 호출자는 특정 위치에서 파일을 사용하기 위해 책 클래스에 의해 강제되는 것이 아니라 데이터를 쓸 위치를 선택할 수 있습니다.

메서드는 IOException을 무시하는 대신 throw해야합니다. 이렇게하면 발신자는 자신이 처리하려고하는 것을 할 수 있습니다.

+0

정말 고마워요. 제가 누락 된 부분입니다. 정말 도움이되었습니다. – user938773

관련 문제