일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- continue to
- 변수
- if조건절
- I'm glad
- 코로나19
- html
- by until
- metascore
- 형변환
- know
- java
- Realtime Rendering
- counldn't have
- it's a good thing
- sort함수
- relif
- by any chance
- for ing
- 제5인격
- 게임QA
- keep -ing
- might have p.p
- C++
- gameQA
- happen to
- 명절 표현
- ISTQB
- 명세기반테스트
- UE4
- end up ing
- Today
- Total
Records rather than Memories
자바에서 상속이란 무엇인가 본문
상속이란 객체지향의 재활용성을 극대화 시킨 프로그래밍 기법이다.
즉, 객체의 필드(변수)와 메소드를 다른 객체가 물려 받는 기능을 말한다.
1
2
3
4
5
|
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
|
cs |
위의 예제를 보자 만약 계산기라는 프로그램을 만든다고 할 때
substract라는 빼기 연산기능 메소드를 추가하려면 제한사항이 있다.
왜냐하면 자신이 만든 객체가 아닐 수 있고, 객체가 다양한 곳에서 활용되는데 무작정 메소드를 추가했을 때 오류가 발생할 수 있기 때문이다.
따라서, 기존의 객체를 유지하면서 어떤 기능을 추가하는 방법이 상속이다.
* 기존의 객체를 수정하지 않고 새로운 객체(자식)가 기존의 객체(부모)를 기반으로 자기입맛에 맞게 만드는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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 {
public void substract() {
System.out.println(this.left - this.right);
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
SubstractionableCalculator c1 = new SubstractionableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
}
}
|
cs |
다시 위의 예제를 보자
class SubstractionableCalculator extends Calculator 를 통해 Calculator 클래스를 상속받아 SubstractionableCalculator라는 자식 클래스를 만들었다.
이 부분을 통해 부모 클래스의 setOprand, sum, avg도 사용가능하고, 새로운 메소드 substract를 만들 수 있는 것이다.
그 때 자식클래스 SubstrationableCalculator.substract 메소드의 left, right 변수를 부모 클래스 Calculator에서 가져온다.
* 상속의 기능과 장점
- 부모클래스 기반으로 하나의 자식클래스 뿐 만아니라 곱하기, 나누기 등 많은 자식클래스를 만들 수 있다.
- 자식클래스를 기반으로 또 다른 자식클래스를 만들며 끊임 없이 상속할 수 있다.
- 코드 중복 제거
- 유지 보수 편리
- 어떤 클래스의 메소드인지 알아볼 때 상속 클래스를 보면 되기 때문에 가독성이 좋음
'Software > JAVA' 카테고리의 다른 글
overloading (0) | 2019.10.21 |
---|---|
overriding (0) | 2019.10.21 |
[java] 초기화와 생성자 (0) | 2019.10.21 |
유효범위란 (0) | 2019.10.20 |
클래스 멤버와 인스턴스 멤버 (0) | 2019.10.19 |