Java 상속

this & super

수업소개

자기자신을 의미하는 this와 부모를 의미하는 super 키워드를 통해서 원하는 대상을 정확하게 지정하는 방법을 살펴봅시다. 

 

 

 

강의

 

 

 

소스코드

https://github.com/egoing/java-inheritance/commit/850ff16f2aee1a5fe20cacfd7c7ce33264c9628a

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;
    }
}

 

댓글

댓글 본문
  1. 자바가 무섭지 않은 예솔
    super를 굳이 왜 써야하는건지 이해하기가 어렵네요ㅠㅠ
  2. 안광민
    this = 자기자신, super = 부모를 가리킨다

    완료
  3. 싱와
    this 는 자기자신 클래스 내에 있는 메소드를 지칭할때,
    super는 부모 클래스 내에 있는 메소드를 지칭할때 쓰기!!
  4. 콜라
    감사합니다
  5. 빽토리얼
    this: 자신 클래스 내의 메서드, 필드를 지칭할 때 사용
    super: 부모 클래스 내의 메서드, 필드를 지칭할 때 사용
  6. 넘무
    감사합니다
  7. thebluerat
    2020년 6월 25일 목요일
  8. hyuna lee
    감사해요.
    머리나빠서 여기만5번 봤어요.
    근데 마지막 멘트에 this는 자기자신 sum은 부모라고 하셨는데 super가 부모인데 잘못말씀하신건지요?
graphittie 자세히 보기