Ms'Note

Extends-2 본문

IT/└▶Example Coding.JAVA

Extends-2

Jelly_B 2020. 8. 21. 23:31

공통 기능을 구현하는 클래스

  • 게시판의 일반적인 기능을 구현한다. 자료실과 질문/답변 게시판은 기본적인 게시판의 기능을
    포함하고 있기 때문에, 이 클래스는 두 자식 클래스의 공통 기능을 추출한 개념이다.
public class Article {

    // 글 번호
    private int num;
    private String title;
    
    public int getNum() {
        return num;
    }
    
    public void setNum(int num) {
        this.num = num;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
}

 

 

 

 

 

질문/답변 게시판을 표현한 클래스

  • 공통 기능으로써 작성된 Article을 상속받기 때문에, 답변에 대한 개념만 추가한다.
public class QNAArticle extends Article {

    // 부모 클래스의 title을 질문으로 보고, 답변을 추가한다.
    private String answer;
    
    public String getAnswer() {
        return answer;
    }
    
    public void setAnswer(String answer) {
        this.answer = answer;
    }
    
    public String toString() {
        return "질문/답변 [글번호=" + getNum() + ", 제목=" + getTitle() + ", 답변=" + answer + "]";
    }
}

 

 

 

 

 

자료실을 표현한 클래스

  • 공통 기능을 상속받고 있기 때문에, 첨부파일이라는 개념만 추가한다.
public class FileArticle extends Article {

    // 자료의 확장 -> 파일이름
    private String fileName;
    
    public String getFileName() {
        return fileName;
    }
    
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    
    public String toString() {
        return "자료실 [번호=" + getNum() + ", 제목=" + getTitle() + ", 첨부파일=" + fileName + "]";
    }
}

 

 

 

 

 

기능의 활용

public class Main {
    public static void main(String[] args) {
        FileArticle fileArticle = new FileArticle;
        fileArticle.setNum(1);
        fileArticle.setTitle("첫 번째 자료입니다.");
        fileArticle.setFileName("java.ppt");
        System.out.println(fileArticle.toString());
        
        System.out.println("--------------------");
        
        QNAArticle qna = new QNAArticle();
        
        qna.setNum(1);
        qna.setTitle("첫 번째 질문입니다.");
        qna.setAnswer(첫 번째 답변입니다.");
        System.out.println(qna.toString());
    }
}    

 

 

출력 결과

 

'IT > └▶Example Coding.JAVA' 카테고리의 다른 글

Overload-1  (0) 2020.08.22
Override  (0) 2020.08.22
Extends-1  (0) 2020.08.16
Hiding-3  (0) 2020.08.11
Hiding-2  (0) 2020.08.11
Comments