상속(inheritance)
상속
- 클래스를 만들 때 다른 클래스가 가지고 있는 메서드 혹은 변수를 가져와서 사용하는 방법 중에 하나이다
- 참조와는 달리 메서드와 변수를 물려받아 자기 자신 것처럼 사용하는 개념을 의미한다
- 기존에 만든 클래스에 새로운 기능을 추가하거나 이미 만들어진 메서드를 다시 구현할 경우 사용한다
- 기존에 만들어진 클래스를 직접 손대지 않고 추가 혹은 수정을 가할 수 있으므로 객체 지향 프로그래밍에서는 굉장히 많이 사용하는 기법이다
- 자바에서는 다중 상속을 지원하지 않으며 단일 상속만을 지원한다
- 자바에서는 상속을 받기 위한 코드를 작성하지 않으면 (개발자가 직접 상속시킨 클래스가 없다면) Object라는 클래스를 자동으로 상속받게 된다
부모와 자식
- 객체 지향 언어에서는 물려 주는 쪽을 부모 클래스(Super Class)라고 부르며 물려받는 쪽을 자식 클래스(Sub Class)라고 부른다
상속 문법
extends
- 클래스를 만들 때 특정 클래스를 상속 받기 위해서는 다음과 같이 한다
class 클래스 이름 extends 부모클래스
InheritanceTest.java
-----------------------------------------------------------------------------------------------
Class1 c1 = new Class1( );
c1.v1 = 100;
c1.method1( );
c1.v2 = 200;
c1.method2( );
c1.method3( );
}
-----------------------------------------------------------------------------------------------
Class1.java
-----------------------------------------------------------------------------------------------
public class Class1 extends Class2{
int v1;
public void method1( ) {
System.out.println("Class1의 변수 v1 : " + v1);
}
public void method3( ) {
v2 = 1000;
method2();
}
}
-----------------------------------------------------------------------------------------------
Class2.java
-----------------------------------------------------------------------------------------------
public class Class2 {
int v2;
public void method2( ) {
System.out.println("Class2의 변수 v2 : " + v2);
}
}
-----------------------------------------------------------------------------------------------