상속
부모 클래스의 정보를 자식클래스가 그대로 상속받는 것을 말한다. 따라서 자식은 부모클래스의 정보를 상속받았으므로 자식클래스에서 부모클래스의 메소드를 호출하는 것이 가능하다는 것이다. (이외로 변수 등과 같은 모든 정보를 그대로 받는다. 이는 코드의 생산성을 증가시킨다.)
예제
class Super{
int x = 90;
void superMethod(){
System.out.println("superMethod");
}
}
class Sub extends Super {
int y = 10;
void subMethod(){
System.out.println("subMethod");
}
}
class SubSub extends Sub {
int z = 30;
void subSubMethod(){
System.out.println("subSubMethod");
}
}
public class ExtendsTest2 {
public static void main(String[] args){
SubSub ss = new SubSub();
System.out.println(ss.x + ss.y + ss.z);
ss.superMethod();
ss.subMethod();
ss.subSubMethod();
ss.x = 40;
System.out.println(Super.x);
}
}
결과
130
superMethod
subMethod
subSubMethod
40
해설
Super클래스를 Sub클래스가 상속받고 Sub클래스를 SubSub클래스가 상속받았으므로 SubSub클래스는 Super 클래스와 Sub클래스의 모든 메소드와 변수를 사용할 수 있다.
궁금증
그럼 슈퍼클래스에있는 정적변수의 값을 상속받은 자식클래스에서 수정이 가능할까?
답은 가능하다. Super클래스를 정의했을 때부터 이미 Class Area에는 정적변수인 x가 존재한다. 따라서 Super 클래스로 객체를 만들지 않아도 상속받은 자식클래스에서 x에 대한 접근이 가능하다.
'웹 프로그래밍 > Spring Framework' 카테고리의 다른 글
[Java] 이름 붙은 반복문 (0) | 2014.09.24 |
---|---|
[JAVA] final 예약어 (0) | 2014.07.15 |
[JAVA] 회원관리 시스템 / 응용 코드 (0) | 2014.06.08 |
[JAVA] this() 생성자(코드의 간결함을 위한!) (0) | 2014.06.08 |
[JAVA] new 생성자 (0) | 2014.06.08 |