728x90
반응형
하필 또 이름이 비슷해서 헷갈리게 하는 기능이 있단다.
Overriding과 Overloading이 있는데 후자는 상속과 아무런 관련이 없다는데요? 흠..
그래도 무슨말인지 보아하니..
java에서는 같은 이름의 method도 기능만 다르면 사용가능하다. 그래서 아래처럼
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
// 아래 method는 위의 sum과 이름이 같지만 정수 3개를 더해주는 다른 기능을 쓴다
// 이걸 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));
Cal3 c3 = new Cal3();
System.out.println(c3.minus(3, 10));
System.out.println(c3.sum(2, 1));
}
}
sum 이라는 method의 이름은 같지만 그 기능은 다른 두 개의 method가 생겼다.
그냥 이걸 Overloading 이라고 부른다고 한다.
상속과는 별 관련이 없다고 생각하면 편하단다.
728x90
반응형
'Java > Java 상속' 카테고리의 다른 글
상속과 생성자 (0) | 2020.12.01 |
---|---|
this & super (0) | 2020.12.01 |
Overriding (0) | 2020.12.01 |
Java에서 상속 (0) | 2020.12.01 |