현실에서 상속의 개념을 알고 있다면 자바에서의 상속도 쉽게 이해할 수 있다. 자세한 예는 지난 포스팅을 읽어보면 된다.
상속을 활용하는데 있어 super와 Override의 개념이 나온다.
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만 붙여주면 부모 클래스가 가진 값을 불러온다.
'문돌이의 IT > 자바(Java)' 카테고리의 다른 글
자바(Java) instanceof 사용방법 (0) | 2016.03.11 |
---|---|
자바(Java) getClass 메소드 사용방법 (0) | 2016.03.10 |
자바(Java) 상속(Inheritance)의 개념과 의미를 파헤치자 (0) | 2016.03.08 |
자바(Java) this 사용방법 (0) | 2016.03.07 |
자바(Java) PrintStream클래스의 printf메소드 사용방법 (0) | 2016.03.06 |