현실에서 상속의 개념을 알고 있다면 자바에서의 상속도 쉽게 이해할 수 있다. 자세한 예는 지난 포스팅을 읽어보면 된다.

 

 

상속을 활용하는데 있어 superOverride의 개념이 나온다.

super는 부모가 가진 생성자를 호출하는데 쓰이며 형식은 다음과 같다.

 

super.멤버변수 / super.멤버메소드, super()super

 

Override는 자식 클래스에서 메소드를 다시 정의하는 것을 의미한다.

 

먼저 부모 클래스를 만들어서 vI 값을 int 10으로, mView 메소드는 출력 값을 상위 메소드 확인으로 주었다.

 

class Parent{

 int vI01 =10;

 

 void mView(){

 System.out.println("상위 메소드 확인");

 }

}

 

다음으로 자식 클래스를 입력해보자. 자식클래스에서는 메소드를 다시 정의했다. Son 클래스의 vI01 값은 문자열 20으로 넣고 mView 메소드는 출력 값을 하위 메소드 확인으로 주었다. 부모 클래스의 vI01, mView()와는 다른 값이다.

 

출력을 하면 당연히 자식 클래스의 값으로 나오는데, 상위 클래스인 부모 클래스의 값도 extends, super를 통해 가져올 수 있다.

 

class Son extends Parent{

 String vI01="20";

 

 void mView(){

 System.out.println("하위 메소드 확인");

 }

 

 void mPrint(){

 System.out.println(vI01); //결과 20

 System.out.println(super.vI01); //결과 10

 

 mView(); // 하위 메소드 확인

 super.mView(); //상위 메소드 확인

 }

 

public static void main(String[] args){

 Son obj = new Son();

 obj.mPrint();

 }

}

 

super.vI01 또는 super.mView() 와 같이 super만 붙여주면 부모 클래스가 가진 값을 불러온다.  

+ Recent posts