상속의 개념
- 객체의 필드(변수)와 메소드를 다른 객체가 물려받는 기능
- 새로운 변수/메소드 추가 또는 변경 가능
- 기존 객체 유지하면서 기능 추가
- 부모 객체 - 자식 객체 /상위 클래스 - 하위 클래스 / 기초 클래스 - 유도 클래스
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 SubCalculator extends Calculator { => SubCalculator은 Calculator을 확장/상속한다
public void substract() {
System.out.println(this.left - this.right);
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
SubCalculator c1 = new SubCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
}
//
30
15
-10
다양한 종류의 상속
class DivCalculator extends MulCalculator {
public void div() {
System.out.println(this.left / this.right);
}
}
public class CalculatorDemo3 {
public static void main(String[] args) {
DivCalculator c1 = new DivCalculator();
c1.setOprands(10,20);
c1.sum();
c1.avg();
c1.mul();
c1.div();
}}
총정리
코드의 중복 제거
재활용성 높음
부모클래스 변경하면 자식클래스도 연동되므로 유지보수 편함
'Programming > 자바' 카테고리의 다른 글
생활코딩 자바 - overriding ?? (0) | 2022.04.02 |
---|---|
생활코딩 자바 - 상속과 생성자 ?? (0) | 2022.04.02 |
생활코딩 자바 - 생성자 (0) | 2022.04.02 |
생활코딩 자바 - 유효범위 (0) | 2022.04.01 |
생활코딩 자바 - 클래스 멤버, 인스턴스 멤버 (0) | 2022.03.28 |