반응형
Java에서 다형성이란
Java에서 다형성(Polymorphism)은 객체지향 프로그래밍(OOP)의 중요한 원칙 중 하나입니다. 다형성은 하나의 객체가 여러 가지 타입을 가질 수 있음을 의미합니다.
다형성은 다음과 같은 형태로 구현됩니다.
1. 오버로딩(Overloading)
오버로딩은 같은 이름의 메소드가 매개변수의 타입, 개수, 순서 등의 차이로 인해 다른 동작을 수행할 수 있도록 하는 것입니다.
public class Example {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
2. 오버라이딩(Overriding)
오버라이딩은 부모 클래스에서 정의된 메소드를 자식 클래스에서 재정의하여 사용하는 것입니다. 이 때 자식 클래스에서 재정의한 메소드는 부모 클래스에서 정의된 메소드의 이름, 매개변수, 반환값 등이 모두 같아야 합니다.
public class Animal {
public void makeSound() {
System.out.println("동물이 소리를 냅니다.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("멍멍!");
}
}
3. 다형적 변수(Polymorphic Variables)
다형적 변수는 부모 클래스 타입의 변수에 자식 클래스 객체를 대입할 수 있는 것을 의미합니다. 이 때 변수가 실제로 참조하는 객체의 타입에 따라 메소드 호출 시 동적 바인딩이 이루어져 적절한 메소드가 호출됩니다.
public class Animal {
public void makeSound() {
System.out.println("동물이 소리를 냅니다.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("멍멍!");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("야옹!");
}
}
public class Example {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.makeSound(); // "멍멍!" 출력
animal2.makeSound(); // "야옹!" 출력
}
}
Java에서 다형성은 코드의 재사용성과 유연성을 높여주는 중요한 개념입니다.
반응형
'프로그래밍언어 > JAVA' 카테고리의 다른 글
[Java] 가변객체, 불변객체 (1) | 2023.03.30 |
---|---|
[Java] String, StringBuilder, StringBuffer 차이점 (0) | 2023.03.30 |
[JAVA] StringBuilder 메서드 별 간단한 사용 예제 (0) | 2023.03.29 |
[JAVA] Functional Interface 함수형 인터페이스 (1) | 2023.01.02 |
[JAVA] 메소드 레퍼런스 (::사용하는 메소드) (0) | 2023.01.01 |