본문 바로가기

언어 기초/JAVA

[자바의정석 | Chapter 07 객체지향 프로그래밍2] super, super()

1. 학습목표

super에 대해 이해할 수 있다.

2.필요 개념 문장정리

super

  • 자손클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수이다.
  • 상속받은 멤버와 자신의 멤버가 이름이 같을 때 super를 붙여 구별할 수 있다.
  • static메서드에서는 사용할 수 없고 인스턴스메서드에서만 사용할 수 있다.

super()

  • 조상클래스의 생성자를 호출하는데 사용한다.
  • Object클래스를 제외한 모든 클래스의 생성자 첫줄에 생성자.this() 또는 super()를 호출해야한다. 
  • 조상클래스의 멤버변수는 조상의 생성자에 의해 초기화되도록해야 한다.

 3. 코드작성

class SuperTest2{
	public static void main(String args[]) {
    	Child c = new Child();
        c.method();
    }
}

class Parent {
	int x = 10;
}

class Child extends Parent {
	int x = 20;
    
    void method() {
    	System.out.println("x=" + x);
        System.out.println("this.x=" + this.x);
        System.out.println("super.x=" + super.x);
    }
}

실행결과
x = 20
this.x = 20
super.x = 10

4. 마무리

super를 사용하여 상속받은 멤버를 사용하는 것을 이해할 수 있었다.