Language/Java

[Java] 상속(Extends)이란?

삐누아빠 2019. 10. 2. 03:35

 

이번 포스트에서는 자바에서 사용되는 상속(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의 생성자 메서드가 실행된 모습을 확인할 수 있습니다.

 

콘솔 실행화면