상속(Inheritance)과 자바에서의 활용

JH·2024년 2월 7일

java

목록 보기
3/21

상속은 객체지향 프로그래밍에서 중요한 개념 중 하나로, 기존의 클래스를 확장하여 새로운 클래스를 정의하는데 사용된다. 자바에서는 다음과 같은 특징을 가지고 있다:

상속의 개념

  • 상위 클래스(Superclass) 또는 부모 클래스(Parent Class): 상속 대상이 되는 기존 클래스
  • 하위 클래스(Subclass) 또는 자식 클래스(Child Class): 상위 클래스를 상속하여 확장된 새로운 클래스

상속의 특징

  • 부모 클래스의 필드와 메소드가 자동으로 상속된다. 이는 부모 클래스의 데이터와 동작을 자식 클래스에서 재사용할 수 있음을 의미한다.
  • 생성자와 초기화 블록은 상속되지 않는다. 자식 클래스에서는 별도로 정의해주어야 한다.
  • 다중 상속은 허용되지 않는다. 즉, 한 클래스가 여러 개의 클래스로부터 상속받는 것은 불가능하다.
  • private와 default로 선언된 멤버는 자식 클래스에서 직접 접근할 수 없다. 다만, 동일한 패키지 내에서는 default 접근 제어자로 선언된 멤버에 접근이 가능하다.

자바에서의 상속

자바에서는 extends 키워드를 사용하여 클래스를 상속한다. 구체적인 형태는 다음과 같다:

class 자식클래스명 extends 부모클래스명 {
    // 자식 클래스의 필드와 메소드 정의
}

예제

다음은 자바에서 상속을 이해하기 위한 예제 코드이다. Animal 클래스를 확장하여 Dog 클래스를 정의하는 예제이다.

class Animal {
    String name;

    public void eat() {
        System.out.println(name + " is eating.");
    }
}

class Dog extends Animal {
    public void bark() {
        System.out.println(name + " is barking.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.name = "Buddy";
        dog.eat();  // 상위 클래스의 메소드 호출
        dog.bark(); // 자식 클래스의 메소드 호출
    }
}

위의 예제에서는 Animal 클래스를 상속하여 Dog 클래스를 정의하고 있다. Dog 클래스는 Animal 클래스의 name 필드와 eat() 메소드를 상속받았다. 또한 Dog 클래스에는 bark()라는 메소드가 추가되어 있다.

profile
발전하는 백엔드 개발자

0개의 댓글