산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 상속 완벽 가이드: 유형, 문법, 실전 예제

상속이란?

상속(Inheritance)은 한 클래스가 다른 클래스의 필드와 메서드를 물려받게 하는 핵심 객체지향 개념입니다. 자식이 부모의 특성을 물려받는 것과 비슷합니다. 기존 코드를 재사용함으로써 재사용성을 높이고 유지보수를 단순화합니다.

이 가이드에서 다룰 내용:

상속 유형

Java는 다양한 상속 패턴을 지원하며, 각각 다른 설계 요구사항에 적합합니다.

단일 상속 (Single Inheritance)

한 클래스가 다른 클래스를 확장하여 단순한 부모-자식 관계를 형성합니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Class B가 Class A를 확장

다중 상속 (Multiple Inheritance)

Java는 클래스가 여러 클래스를 확장하는 것을 허용하지 않지만, 인터페이스를 사용할 때 이 개념을 이해하면 도움이 됩니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Class C가 Class A와 Class B를 모두 확장 (개념적)

다단계 상속 (Multilevel Inheritance)

상속 체인은 여러 레벨에 걸쳐 있을 수 있습니다: 서브클래스가 또 다른 클래스의 슈퍼클래스가 될 수 있습니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Class C가 B를 확장, B가 A를 확장

계층적 상속 (Hierarchical Inheritance)

하나의 슈퍼클래스가 여러 서브클래스를 가질 수 있습니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Class B, C, D가 모두 Class A를 확장

하이브리드 상속 (Hybrid Inheritance)

하이브리드 상속은 단일 상속과 다중 상속 패턴을 결합합니다. Java는 클래스로는 직접 지원하지 않지만, 인터페이스를 사용해 복잡한 계층을 설계할 때 유용합니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Class D가 Class B와 C에서 상속, 둘 다 Class A를 확장

참고: Java는 클래스에 대한 하이브리드 또는 다중 상속을 지원하지 않습니다.

Java에서의 상속

Java에서 Is-A 관계는 상속으로 표현됩니다. extends 키워드는 서브클래스가 슈퍼클래스로부터 상속받음을 나타냅니다.

일반적인 문법:

class SubClass extends SuperClass {
    // 메서드와 필드
}

Java 상속 예제

아래는 상속이 실제로 작동하는 간결한 예입니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Java 상속 예제
class Doctor {
    void doctorDetails() {
        System.out.println("Doctor Details...");
    }
}
class Surgeon extends Doctor {
    void surgeonDetails() {
        System.out.println("Surgeon Detail...");
    }
}
public class Hospital {
    public static void main(String[] args) {
        Surgeon s = new Surgeon();
        s.doctorDetails();
        s.surgeonDetails();
    }
}

super 키워드 사용

super 키워드는 슈퍼클래스 멤버에 접근하게 해주며, this와 유사하지만 부모 클래스 요소에 사용됩니다.

변수, 메서드, 생성자에 모두 사용 가능합니다.

문법 예:

super.methodName();

실전 시나리오: 뱅킹 애플리케이션

여러 계좌 유형을 지원하는 뱅킹 애플리케이션을 고려해 보세요. 구조적 접근에서는 deposit, withdraw 같은 공통 동작에 대해 별도 함수를 작성합니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제

OOP 접근에서는 공통 동작을 담은 기본 Account 클래스를 정의하고, 특정 계좌 유형에 맞게 확장합니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
구조적 접근: deposit/withdraw 별도 함수
Java 상속 완벽 가이드: 유형, 문법, 실전 예제
OOP 접근: 서브클래싱으로 중복 감소

오버드래프트 기능 추가

오버드래프트 기능 요구사항이 생기면, 구조적 코드는 기존 함수를 수정해야 합니다. 반면 OOP에서는 테스트된 기본 코드를 건드리지 않고 독자적인 withdraw 로직을 가진 새 서브클래스를 만들면 됩니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Java 상속 완벽 가이드: 유형, 문법, 실전 예제
구조적 접근: 기존 withdraw 함수 수정
Java 상속 완벽 가이드: 유형, 문법, 실전 예제
OOP 접근: 오버드래프트 계좌용 새 서브클래스 추가

신용카드 계좌 추가

마찬가지로 고유한 입금 규칙을 가진 신용카드 계좌 도입도 OOP에서는 기본 클래스를 확장한 특화 서브클래스 생성으로 간단히 해결됩니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Java 상속 완벽 가이드: 유형, 문법, 실전 예제
구조적 접근: 기존 입금 로직 수정
Java 상속 완벽 가이드: 유형, 문법, 실전 예제
OOP 접근: 커스텀 입금 로직을 가진 새 서브클래스 생성

OOP에서 상속의 이점

상속은 공통 로직을 부모 클래스에 두어 코드 중복을 제거합니다. 자식 클래스는 deposit과 withdraw 메서드를 상속받아 유지보수 부담을 줄입니다.

Java 상속 완벽 가이드: 유형, 문법, 실전 예제
Java 상속 완벽 가이드: 유형, 문법, 실전 예제

java

  1. Java 상속 마스터: 개념, 종류, 실전 예제 총정리
  2. C# 인터페이스(Interface) 완벽 이해: 정의, 예제, 실전 활용법
  3. Java OOP 개념: 기초, 예제, 장점 완벽 정리
  4. Java 캡슐화 완전 가이드: 실전 예제와 핵심 개념
  5. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  6. Java String.charAt() 완전 이해: 문법, 반환타입, 예외, 실전 예제
  7. Java String.contains() 메서드: 부분문자열 포함 여부 확인 (실전 예제)
  8. Java String.endsWith() 마스터: 문자열 접미사 확인 예제
  9. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  10. 자바 삽입 정렬 알고리즘: 명확한 예제와 단계별 가이드