1. 수업소개
- inheritance : 상속은 어떠한 클래스가 있을 때,
클래스가 가지고 있는 변수와 메소드를 확장해서 다른 클래스가 갖도록 하는 것
> 재사용성을 높이고 유지 보수의 편의성, 가독성을 높이고 코드의 양을 줄이는 목표를 달성할 수 있음
- class Cal3 extends Cal{
> Cal 클래스를 상속받은 클래스 Cal3
|
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
|
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
}
class Cal3 extends Cal{
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1));
Cal3 c3 = new Cal3();
System.out.println(c3.sum(2, 1));
}
}
class Cal2{
public int sum(int v1, int v2) {
return v1+v2;
}
public int minus(int v1, int v2) {
return v1-v2;
}
}
|
cs |

> 결과에서 두번째 3은 상속받은 Cal3의 결과
2. 기능의 개선과 발전
- 어떻게 하면 자식 클래스가 부모 클래스가 가지고 있지 않은 기능을 추가할 수 있을까?
또한, 부모 클래스가 가진 기능을 덮어쓰기 할 것인가?
|
1
2
3
4
5
6
7
8
|
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1-v2;
}
public int sum(int v1, int v2) {
System.out.println("Cal3!!");
return v1+v2;
}
|
cs |
> 부모가 가진 메소드를 재정의/덮어쓰기 함 : Overriding
|
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
|
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1-v2;
}
public int sum(int v1, int v2) {
System.out.println("Cal3!!");
return v1+v2;
}
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1));
Cal3 c3 = new Cal3();
System.out.println(c3.sum(2, 1));
System.out.println(c3.minus(2,1));
System.out.println(c3.sum(2, 1));
}
}
class Cal2{
public int sum(int v1, int v2) {
return v1+v2;
}
public int minus(int v1, int v2) {
return v1-v2;
}
}
|
cs |

'Java' 카테고리의 다른 글
| 생활코딩 JAVA 상속 - 상속과 생성자 (+수업을 마치며) (0) | 2023.01.09 |
|---|---|
| 생활코딩 JAVA 상속 - Overriding vs Overloading / this & super (0) | 2023.01.09 |
| 생활코딩 JAVA 객체 지향 프로그래밍 - 생성자와 this / 클래스와 인스턴스의 활용 (+수업을 마치며) (0) | 2023.01.09 |
| 생활코딩 JAVA 객체 지향 프로그래밍 - 인스턴스 / static (0) | 2023.01.09 |
| 생활코딩 JAVA 객체 지향 프로그래밍 - 변수와 메소드 / 클래스 (0) | 2023.01.08 |