본문 바로가기
Spring과 진짜 초면인 우리들에게

객체지향의 특징 4가지 - 상속성

by eddy0223 2023. 3. 28.
Spring과 진짜 초면인 우리

 

 

1️⃣ 캡슐화 2️⃣추상화 3️⃣ 다형성 4️⃣ 상속성


4️⃣ 상속성

상속성이란?  

- 기존의 클래스를 변경하여 새로운 클래스를 만들 때, 기존 클래스의 속성과 메서드를 상속받아 사용하는 개념

- 즉, 상속을 통해 코드의 재사용성을 높이고, 유지보수와 확장성을 개선할 수 있다.

 

'Language' 클래스를 추상 클래스로 선언하고,

'English', 'Chinese', 'Japanese' 클래스에서 'Language' 클래스를 상속받아 각각의 언어로 greeting 하는 간단 예시 코드

 

'Main' 클래스에서는 'Language' 타입의 'language' 변수를 선언하고, 'English', 'Chinese', 'Japanese' 클래스를 객체 생성하여 'language' 변수를 통해 객체의 'greeting' 메소드를 호출하는데, 이를 통해 상속성의 개념을 살펴볼 있다.

 

// Language 클래스 선언 (추상 클래스)
abstract class Language {
    // 추상 메소드
    public abstract void greeting();
}

// English 클래스 선언 (Language 클래스를 상속)
class English extends Language {
    // greeting 메소드 오버라이드
    public void greeting() {
        System.out.println("Hello, World!");
    }
}

// Chinese 클래스 선언 (Language 클래스를 상속)
class Chinese extends Language {
    // greeting 메소드 오버라이드
    public void greeting() {
        System.out.println("你好,世界!");
    }
}

// Japanese 클래스 선언 (Language 클래스를 상속)
class Japanese extends Language {
    // greeting 메소드 오버라이드
    public void greeting() {
        System.out.println("こんにちは、世界!");
    }
}

// Main 클래스 선언
public class Main {
    public static void main(String[] args) {
        Language language;

        // English 객체 생성 및 greeting 메소드 호출
        language = new English();
        language.greeting(); //출력 : Hello, World!

        // Chinese 객체 생성 및 greeting 메소드 호출
        language = new Chinese();
        language.greeting(); //출력 : 你好,世界!

        // Japanese 객체 생성 및 greeting 메소드 호출
        language = new Japanese();
        language.greeting(); //출력 : こんにちは、世界!
    } 
}