5. 1 상속
Java 언어에서는 여러 클래스의 공통점을 기반 클래스에 정의하고 파생 클래스를 정의할 때 기반 형식에서 확장하여 추가 및 변경할 수 있습니다. UML에서는 기반 클래스와 파생 클래스 사이에 삼각형과 실선으로 상속을 일반화 관계로 표현하며 “피아니스트는 음악가이다.”처럼 두 형식 사이에 “이다.(is a)”로 나타낼 수 있을 때 사용합니다.
Java 언어에서는 파생 클래스를 정의할 때 어떤 형식을 기반으로 할 것인지 extends 키워드를 이용하여 표현합니다.
class 파생 클래스명 extends 기반 클래스명{
}
예를 들어 음악가 형식에 “연주하다.” 메서드를 정의하고 음악가 형식을 기반으로 파생 클래스 피아니스트를 정의하면 피아니스트 형식은 기반 형식에 정의한 멤버를 상속받습니다. 따라서 피아니스트 개체의 “연주하다.” 메서드를 호출할 수 있다는 것입니다.
[소스 5.1] Musician을 기반으로 파생 클래스 Pianist를 정의하여 상속을 활용한 예
public class Musician { public void play(){ System.out.println("연주하다."); } }
public class Pianist extends Musician{ public void tuning(){ System.out.println("조율하다."); } }
public class Program { public static void main(String[] args){ Pianist pianist = new Pianist(); pianist.play(); pianist.tuning(); } }
실행 결과
연주하다. 조율하다.