본문 바로가기

Web/JAVA

[Java] Super

728x90

https://www.baeldung.com/java-super

 

 

 

 

super class는 부모 class에 액세스한다는 의미이다

 

 

 

The super Keyword With Constructors

부모의 기본 cunstructor를 호출한다

public class SuperSub extends SuperBase {

    public SuperSub(String message) {
        super(message);
    }
}

이런 코드가 있다면 child class instance에서 new 키워드로 부모 constructor를 먼저 호출하여 String인수를 전달 하는 SuperSub의 생성자를 호출한다

SuperSub child = new SuperSub("message from the child class");

 

 

Accessing Parent Class Variables

 

message instance 변수를 사용하여 바로 부모클래스를 생성할 수 있다

public class SuperBase {
    String message = "super class";

    // default constructor

    public SuperBase(String message) {
        this.message = message;
    }
}

 

자식클래스 생성 후 super 를 사용하여 SuperSub에서 SuperBase 변수에 액세스한다

public class SuperSub extends SuperBase {

    String message = "child class";

    public void getParentMessage() {
        System.out.println(super.message);
    }
}

 

 

 

 

The super Keyword With Method Overriding

메소드 재정의

https://www.baeldung.com/java-method-overload-override

 

부모클래스에 instance method를 추가하고 이를 자식클래스에서 재정의할 수 있다

public class SuperBase {

    String message = "super class";

    public void printMessage() {
        System.out.println(message);
    }
}
public class SuperSub extends SuperBase {

    String message = "child class";

    public SuperSub() {
        super.printMessage();
        printMessage();
    }

    public void printMessage() {
        System.out.println(message);
    }
}

SuperSub에서 printMessage 를 호출해와서 액세스한다 (재정의할 수 있ㅇ므)

728x90

'Web > JAVA' 카테고리의 다른 글

[effective java] 3판 요약 보면서 (1)  (0) 2023.04.17
[자료구조] DFS, BFS  (0) 2023.04.17
[Java] Interface Supplier<T>  (0) 2023.03.22
[Java] this  (0) 2023.03.22
[IntelliJ Javadocs] Javadocs 문서 만들기  (0) 2023.03.18