아무거나

super 키워드 본문

Java & Kotlin/Java

super 키워드

전봉근 2019. 7. 4. 11:50
반응형

[super 키워드]

super는 부모를 찾는 키워드

(this는 내 안에있는걸 찾겠다 super는 내 위쪽에 있는걸 찾겠다 둘은 반대개념(this <-> super))

- 자식클래스에서 부모클래스를 override하면 부모클래스의 메소드는 사용할 수 없습니다. 사용하기 위해서는 super키워드를 사용하자.

  ex1) 

  [ParentClass.java]

public class ParentClass {

    public ParentClass() {
    }
    
    public void method1() {
    	System.out.println("ParentClass의 method1() 입니다.");
    }

}

 

  [ChildClass.java]

public class ChildClass extends ParentClass {
    @Override
    public void method1() {
        super.method1();
        System.out.println("ChildClass의 method1() 입니다.");
    }
}

// 1. super.method1(); 호출하여 ParentClass에 있는 method1를 호출.
// 2. ChildClass의 System.out.println("ChildClass의 method1() 입니다."); 출력

ex2)
public class MainClass {
    public static void main(String[] args) {
        ChildClass childClass = new ChildClass();
        childClass.method1();
    }
}

// 결과 -> Override를 했지만 super키워드 때문에 부모 클래스의 method1()를 찾는다.
// ParentClass의 method1() 입니다.
// ChildClass의 method1() 입니다.

  

  * 슈퍼클래스(ParentClass)가 생성이되고 난후에 ChildClass 생성자가 실행이 된다.

    위의 예제에서 Child, Parent에서 생성자에 println을 찍어보면 Parent클래스의 생성자가 먼저 호출되는것을

    확인할 수 있다.​ 

반응형

'Java & Kotlin > Java' 카테고리의 다른 글

인터페이스  (0) 2019.08.08
추상클래스(abstract)  (0) 2019.08.08
오버라이드  (0) 2019.07.04
static  (0) 2019.07.04
접근 제어자  (0) 2019.07.04
Comments