본문 바로가기
Web Programing/JAVA

자바 상속(Inheritance)이란? 부모클래스 자식클래스 개념과 예시

by 기록하는 초보 2024. 2. 22.
반응형

자바에서 상속은 중요한 역할을 하고 있습니다. 이번 글에서는 상속에 대한 계념과 부모클래스 자식 클래스에 대해서 알아보고 상속에 대한 예시로 상속에 대해서 알아보겠습니다.

 

상속(Inheritance)이란?

자바의 상속은 특정 클래스가 다른 클래스의 속성(필드)과 기능(메서드)을 물려받아 사용할 수 있게 하는 객체지향 프로그래밍의 기본 개념 중 하나입니다. 상속을 통해 재사용성을 높이고 중복 코드를 줄일 수 있으며, 상위 클래스를 일반화하고 하위 클래스를 특수화하는 과정에서 프로그램의 체계적인 구조를 갖출 수 있습니다.

 

부모 클래스(상위클래스)

다른 클래스에게 자신의 데이터멤버(필드)와 구성멤버(메서드)를 물려줄 수 있는 클래스로, 'super class' 또는 'base class'라고도 불립니다.

자식 클래스(하위 클래스)

부모 클래스로부터 데이터와 메서드를 상속받아 사용하는 클래스로, 'subclass' 또는 'child class'라고도 명명됩니다. 

 

상속 예시

부모 클래스의 private 멤버들은 자식 클래스로 상속되지 않으며, default 접근 제한자는 같은 패키지 내의 클래스들에게만 사용 가능하므로, 다른 패키지의 자식 클래스가 상속할 수 없습니다. 자식 클래스가 상속을 선언할 때는 extends 키워드를 사용합니다.

//부모 클래스 (Parent Class)
class Animal{
	String type = "동물";
    
	public void eat(){
    	System.out.println("먹습니다.");
	}
}

//자식 클래스 (Child Class)
public class Dog extends Animal{
	String name;
    
	public dog(){
		this.name = name;
	}
    
	public void display(){
		System.out.println(name + "은/는" + type + "입니다.");
    }
}

//메인 클래스 선언
public class exam{
	public static void main(String[] args){
		Dog myDog = new Dog("리트리버");
        myDog.display();	// 출력 : 리트리버은/는 동물입니다.
        myDog.eat();	// 출력 : 음식을 먹습니다.(부모클래스 메소드 호출)
	}
}

위의 예시에서 Dog 클래스는 Animal 클래스로부터 상속을 받고 있습니다. 따라서 Dog 객체는 'eat' 메서드와 'type'속성을 그대로 사용할 수 있습니다. 상속은 클래스 간의 계층을 명확하게 하고, 코드를 더욱 간결하게 만들어줍니다. 부모클래스에서 정의된 멤버들을 자식 클래스에서 다시 작성할 필요 없이 상속을 통해 재사용할 수 있습니다.

반응형