Spring과 진짜 초면인 우리
1️⃣ 캡슐화 2️⃣추상화 3️⃣ 다형성 4️⃣ 상속성
3️⃣ 다형성

다형성이란?
- 같은 이름의 메서드나 연산자가 다른 동작을 하는 것
- 다형성을 통해 객체지향 프로그래밍에서 코드의 재사용성과 유연성을 높일 수 있다
아래 코드에서 'Language' 클래스는 'sayHello()' 메서드를 가지고 있고,
이 클래스를 상속한 'English', 'Chiness', 'Japanse' 클래스에서는 'sayHello()' 메서드를 오버라이드 하여 다른 동작을 수행하게 된다.
이때, 'Language'타입의 변수 'lang1', 'lang2', 'lang3' 을 생성하고,
각각을 'English', 'Chiness', 'Japanse' 클래스의 인스턴스로 초기화하여 'sayHello()' 메서드를 호출하면,
동일한 메서드를 호출하더라도 오버라이드된 메서드에 따라 다른 동작을 수행하게 된다.
class Language {
public void sayHello() {
System.out.println("안녕하시오!");
}
}
class English extends Language {
public void sayHello() {
System.out.println("Hello!");
}
}
class Chinese extends Language {
public void sayHello() {
System.out.println("你好!");
}
}
class Japanese extends Language {
public void sayHello() {
System.out.println("こんにちは!");
}
}
public class Main {
public static void main(String[] args) {
Language lang1 = new English();
Language lang2 = new Chinese();
Language lang3 = new Japanese();
lang1.sayHello(); // 출력: Hello!
lang2.sayHello(); // 출력: 你好!
lang3.sayHello(); // 출력: こんにちは!
}
}
'Spring과 진짜 초면인 우리들에게' 카테고리의 다른 글
| @Override 넌 왜 필요하니? (오버로딩 아님 주의!) (0) | 2023.03.29 |
|---|---|
| 객체지향 - 인터페이스 (0) | 2023.03.28 |
| 객체지향의 특징 4가지 - 상속성 (0) | 2023.03.28 |
| 객체지향의 특징 4가지 - 캡슐화 (0) | 2023.03.28 |
| 객체지향의 특징 4가지 - 추상화 (0) | 2023.03.28 |