- 객체지향의 재활용성을 극대화 시킨 프로그래밍 기법
- 객체의 필드(변수)와 메소드를 다른 객체가 물려 받을 수 있는 기능
- 기존의 객체는 기능을 물려준다는 의미(부모 객체) = 상위(super) 클래스
- 새로운 객체는 기존 객체의 기능을 물려받는다는 의미(자식 객체) = 하위(sub) 클래스\
상속의 장점
- 유지보수 용이
- 코드 중복 제거
- 가독성 증가
class Calculator {
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right) / 2);
}
}
class SubstractionableCalculator extends Calculator {
//부모 클래스 = Calculator , 자식 클래스 = SubstractionableCalculator
public void substract() {
System.out.println(this.left - this.right);
}
}
class DivisionableCalculator extends SubstractionableCalculator {
public void division() {
System.out.println(this.left / this.right);
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
// 여러번 상속이 가능하다.
// 부모의 메소드를 물려받으므로 사용 가능
DivisionableCalculator c1 = new DivisionableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
c1.division();
}
}