본문 바로가기

카테고리 없음

자바 클래스의 상속 사용법과 예제: 객체 지향 프로그래밍에서 클래스 상속의 활용 방법과 예시

1. 상속의 개념

상속은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 상속은 이미 정의된 클래스의 속성과 메서드를 다른 클래스가 물려받는 것을 의미합니다. 상속을 통해 기존의 클래스를 확장하거나 재사용할 수 있습니다.

상속은 부모 클래스와 자식 클래스 간의 관계를 표현하는데 사용됩니다. 부모 클래스는 상위 클래스, 슈퍼 클래스라고도 불리며, 자식 클래스는 하위 클래스, 서브 클래스라고도 불립니다. 상속을 통해 자식 클래스는 부모 클래스의 멤버 변수와 메서드를 직접 접근할 수 있으며, 필요한 경우에는 오버라이딩을 통해 재정의할 수도 있습니다.

상속은 코드의 재사용성과 확장성을 높여주는 역할을 합니다. 부모 클래스의 기능을 그대로 사용하면서 추가적인 기능을 추가하거나 변경할 수 있기 때문에 중복 코드를 피할 수 있습니다. 이를 통해 소프트웨어 개발 과정에서 생산성이 향상될 수 있습니다.

마지막으로, 자바에서는 단일 상속만을 지원합니다. 즉, 하나의 자식 클래스는 한 개의 부모 클래스만 상속할 수 있습니다. 이러한 제한은 다중 상속에 따른 복잡성과 충돌 등의 문제를 방지하기 위한 것입니다.

2. 자바에서의 클래스 상속 사용법

자바에서는 extends 키워드를 사용하여 클래스 간의 상속 관계를 정의합니다. 새로운 클래스가 기존 클래스를 상속받기 위해서는 다음과 같은 형식을 사용합니다:

class 자식클래스명 extends 부모클래스명 {
    // 자식 클래스의 속성과 메서드 정의
}

자식 클래스는 부모 클래스의 모든 멤버 변수와 메서드를 상속받게 됩니다. 이를 통해 자식 클래스에서는 부모 클래스의 속성과 메서드를 직접 사용할 수 있습니다.

상속을 통해 확장된 자식 클래스는 자신의 고유한 속성과 메서드를 추가할 수 있습니다. 또한, 필요한 경우 부모 클래스의 메서드를 재정의하여 자식 클래스에 맞게 동작하도록 할 수도 있습니다. 이는 메서드 오버라이딩이라고 알려져 있습니다.

상속 관계가 설정된 후에는, 부모 클래스의 인스턴스를 생성하거나 부모 클래스의 메서드를 호출할 때 자식 클래스에서도 접근할 수 있습니다. 이는 부모 클래스의 멤버 변수와 메서드가 자식 클래스에서 상속되었기 때문입니다.

자바의 상속은 다형성의 개념과도 밀접하게 관련되어 있습니다. 부모 클래스 타입의 변수로 자식 클래스의 인스턴스를 참조할 수 있으며, 이를 통해 더 유연하고 다양한 객체 지향적인 코드를 작성할 수 있습니다.

3. 자바 클래스 상속 예제

다음은 자바에서 클래스 상속을 사용하는 예제입니다:

class Animal {
    String color;

    void eat() {
        System.out.println("Animal is eating");
    }
}

class Dog extends Animal {
    String breed;

    void bark() {
        System.out.println("Dog is barking");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.color = "Brown";
        dog.breed = "Golden Retriever";

        dog.eat(); // Animal is eating
        dog.bark(); // Dog is barking
    }
}

위의 예제에서 Animal 클래스는 color 멤버 변수와 eat() 메서드를 가지고 있습니다. Dog 클래스는 Animal 클래스를 상속받아 breed 멤버 변수와 bark() 메서드를 추가하였습니다.

Main 클래스에서는 Dog 클래스를 인스턴스화 하고, 멤버 변수에 값을 할당한 후 eat() 메서드와 bark() 메서드를 호출하였습니다. 결과적으로, 출력은 다음과 같습니다:

Animal is eating
Dog is barking

이를 통해 자식 클래스인 Dog 클래스는 부모 클래스인 Animal 클래스의 속성과 메서드를 상속받은 후에 자신의 고유한 속성과 메서드를 추가하고 사용할 수 있음을 확인할 수 있습니다.