3. Overriding vs Overloading
- Overriding : 올라타서 덮어쓰다, 재정의하다.
- Overloading : 과적하다, 너무 많이 탑재하다.
- java는 같은 이름의 메소드를 여러 개 과적할 수 있음 > 형태만 다르다면!
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
36
37
38
39
|
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
//Overloading
public int sum(int v1, int v2, int v3) {
return v1+v2+v3;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1-v2;
}
//Overriding
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));
System.out.println(c.sum(2, 1, 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 |
4. this & super
- this : 자기 자신
- super : 자신의 부모
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
36
37
38
39
|
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
//Overloading
public int sum(int v1, int v2, int v3) {
return this.sum(v1,v2)+v3;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1-v2;
}
//Overriding
public int sum(int v1, int v2) {
System.out.println("Cal3!!");
return super.sum(v1,v2);
}
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1));
System.out.println(c.sum(2, 1, 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' 카테고리의 다른 글
[자바의 정석] #CH.1 자바를 시작하기 전에 (1) | 2023.01.12 |
---|---|
생활코딩 JAVA 상속 - 상속과 생성자 (+수업을 마치며) (0) | 2023.01.09 |
생활코딩 JAVA 상속 - (수업소개+)기능의 개선과 발전 (0) | 2023.01.09 |
생활코딩 JAVA 객체 지향 프로그래밍 - 생성자와 this / 클래스와 인스턴스의 활용 (+수업을 마치며) (0) | 2023.01.09 |
생활코딩 JAVA 객체 지향 프로그래밍 - 인스턴스 / static (0) | 2023.01.09 |