해당 게시물은 "생활코딩 - JAVA 상속" 유튜브 강의를 정리한 내용입니다.
같은 이름의 메소드를 형태만 다르게 한 것 (과적하다, 너무 많이 탑재하다)
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;
}
}
// Cal 클래스가 갖고 있는 모든 변수와 메소드를 상속받음
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)); //3
System.out.println(c.sum(2, 1, 1)); // 4
Cal3 c3 = new Cal3();
System.out.println(c3.sum(2, 1)); // Cal3!
// 3
System.out.println(c3.minus(2, 1)); // 1
System.out.println(c3.sum(2, 1)); // Cal3!
} // 3
}