이번에는 객체지향언어의 두번째 특정 상속에 대해 알아보자
일반적으로 상속이라고 하면 부모가 자식에게 물려줄때 사용된다.
Java에서도 똑같다.
100개의 method가 있는 class A가 있다고 가정하자.
이때 이미 A는 많은 곳에서 사용되고 있고 변경하기에는 위험부담이 있을 수 있다.
이때는 A의 기능을 그대로 가져오면서, 새로운 method를 추가할 수 있는데 이때 상속 개념을 이용할 수 있다.
아주 쉽게 아래의 코드를 살펴보자 ( extends 사용 )
package lifeCoding_Inheritance;
// 부모가 만든기능을 자식이 가져올 수 있고 자식을 부모로 한 자식을 또 만들 수 있음
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 MultiplicationableCalculator extends Calculator { // 뺄셈 불가능
public void multiplication(){
System.out.println(this.left * this.right);
}
}
class DivisionableCalculator extends MultiplicationableCalculator { // 곱하기 가능
public void division(){
System.out.println(this.left / this.right);
}
}
public class _03_ {
public static void main(String[] args) {
DivisionableCalculator c1 = new DivisionableCalculator(); // 뺄셈 기능은 없음
c1.setOprands(20, 10);
c1.sum();
c1.avg();
c1.multiplication(); // 200
c1.division(); // 2
}
}
더하기, 나누기 기능이 있는 Calculator를 상속받은 MultCalculator, MultCalculator의 기능을 상속받은 DivisionCaculaotr
이렇게 상속받은 클래스를 인스턴스 c1에 저장하여 method를 사용할 수 있다.
'Java' 카테고리의 다른 글
Java - scope (0) | 2023.05.04 |
---|---|
Java - class, instance, member 그리고 this (0) | 2023.05.04 |
Java - Method 사용하기, OverLoading(오버로딩) (0) | 2023.05.04 |
Java - 배열 (0) | 2023.05.04 |
Java - 반복문 (0) | 2023.05.04 |