다형성(Polymorphism)
: 객체 지향 프로그래밍에서 매우 중요한 개념 중 하나
⇒ 자바에서는 메소드 오버로딩(Overloading) / 메소드 오버라이딩(Overriding)을 통해 다형성을 구현
메소드 오버로딩(Overloading)
: 같은 이름의 메소드를 매개변수의 타입, 개수, 순서 등을 다르게하여 여러 개 만드는 것.
= 즉, 같은 이름의 메소드가 서로 다른 동작을 하게 됩니다.
public class OverloadingExample {
public int add(int x, int y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
public double add(double x, double y) {
return x + y;
}
}
메소드 오버라이딩(Overriding)
: 부모 클래스에 있는 메소드를 자식 클래스에서 재정의하는 것
⇒ 단! 부모 클래스의 메소드와 같은 이름, 매개변수, 반환 타입을 가지고 있어야 함.
public class Animal {
public void makeSound() {
System.out.println("Animal is making a sound.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking.");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat is meowing.");
}
}
→ Animal 클래스를 상속받은 Dog와 Cat 클래스에서 makeSound 메소드를 오버라이딩하여 각자 다른 동작 실행
다형성의 장점
- 코드의 재사용성과 유지보수성을 높일 수 있다.
- 다형성을 이용하면 프로그램의 확장성을 높일 수 있다.
'JAVA > java' 카테고리의 다른 글
[JAVA] 컬렉션 프레임워크 (List, Set, Map) (0) | 2023.03.26 |
---|---|
[JAVA] 업캐스팅/ 다운캐스팅 (0) | 2023.03.26 |
[JAVA] 객체 지향 프로그램의 4가지 특징 (0) | 2023.03.26 |
[JAVA] ArrayList (0) | 2023.03.26 |
[JAVA] 반복문 while문 / do-while 문 (0) | 2023.03.26 |