상속-(1)

Jiian·2022년 5월 13일

Java-Object-Oriented

목록 보기
6/7

해당 게시물은 "생활코딩 - 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
}
profile
Slow and Steady

0개의 댓글