public class 자식클래스 extends 부모클래스{...}
✔ 클래스의 구조를 표현하는 클래스 다이어그램에서, 상속은 자식 클래스가 부모클래스를 가리키는 화살표로 표현한다.
✔ 상속관계가 이루어 질 때 부모 클래스를 super 클래스 라고 한다.
public class Calcparent { public int plus(int x , int y) { return x + y; } public int minus(int x , int y) { return x - y; } }
public class CalcChild extends Calcparent{ public int times(int x, int y) { return x * y; } public int div(int x, int y) { if( y != 0) { } return x / y; } }
public class Article { private int num; private String title; //-----------------getter/setter------------------- 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; } }
☆ 다른데서 접근하지 못하도록, private로 작성후 getter,setter로만 접근할 수 있도록 해주었다.
public class FileArticle extends Article{ private String fileName; //------------getter/setter------------- public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } //---------------toString----------------- @Override public String toString() { return "FileArticle [글번호=" + getNum() + ",글제목 = " + getTitle() +"파일 = " + fileName + "]"; } }
public class QnaArticle extends Article{ private String answer; //------------getter/setter------------- public String getAnswer() { return answer; } public void setAnswer(String answer) { this.answer = answer; } //---------------toString----------------- @Override public String toString() { return "QnaArticle [글번호=" + getNum() + ",글제목 = " + getTitle() + ", 답변 = " + answer+"]"; } }
⬆️ 위와 같이 공통 기능을 별도의 클래스로 추출해 내면, 코드의 재사용 및 수정이 용이하다.