이번 포스트에서는 자바에서 사용되는 상속(Extends)이라는 키워드에 대해서 살펴보도록 하겠습니다.
객체지향언어인 Java는 클래스라는 개념을 활용하여 다양한 디자인 패턴으로 프로그램을 구현할 수 있습니다. 이번 시간에 포소트할 내용인 상속이라는 개념을 이용하여 클래스간 여러 관계(Relationship)를 보다 쉽게 구성할 수 있는데, 상속에 대해 크게 3가지로 키워드를 정의할 수 있습니다.
상속(Extends)이란?
- 기존에 만들어진 클래스의 기능을 통해 새로운 클래스를 쉽게 만들 수 있는 방법이다.
- 부모 클래스를 상속받은 자식 클래스는 부모 클래스의 속성과 기능도 이용할 수 있다.
- 기존의 검증된 Class를 이용해서 빠르고 쉽게 새로운 Class를 만들 수 있다.
아래 예제를 통해 상속이란 키워드를 어떻게 사용하는지 살펴보겠습니다.
먼저 상속할 대상인 Parent Class를 생성해보겠습니다.
//Parent Class
package inheritance;
public class ParentClass {
public ParentClass() {
System.out.println("--- ParentClass() START ---");
}
public void parentFunc() {
System.out.println("--- parentfunction() ---");
}
}
이 후 Parent Class를 상속받을 Child Class를 생성하고 Parent Class를 상속받기 위해 extends라는 키워드를 사용합니다.
//Child Class
package inheritance;
//아래와 같이 ParentClass를 extends를 활용해 상속시켜줍니다.
public class ChildClass extends ParentClass {
public ChildClass() {
System.out.println("--- ChildClass() START ---");
}
public void childFunc() {
System.out.println("--- childfunction() ---");
}
}
Child Class에서 Parent Class를 상속받았기 때문에 Child Class 객체를 통해서 Parent Class의 메서드를 호출하여 사용할 수 있게 됩니다. 아래 작성한 Main Class에서 Child Class 객체를 생성하고 이를 통해 parentFunc() 메서드를 실행하는 모습을 확인할 수 있게됩니다.
//Main Class
package inheritance;
public class MainClass {
public static void main(String[] args) {
ChildClass child1 = new ChildClass();
child1.childFunc();
child1.parentFunc();
}
}
※ Main Class에서 Parent Class 객체를 생성하지 않았지만 Child Class에서 Parent Class를 상속받았기 때문에 아래 콘솔 결과창에서 볼 수 있듯이 Parent Class의 생성자 메서드가 실행된 모습을 확인할 수 있습니다.
'Language > Java' 카테고리의 다른 글
[Java] java.exe와 javac.exe의 상관관계 (0) | 2019.09.27 |
---|