오버로딩(Overloading)
오버로딩(overloading)이란?
같은 이름을 가진 메서드를 여러 개 두는 것을 말한다. 메서드의 타입, 매개변수의 유형, 개수 등으로 여러개를 둘 수 있으며 컴파일 중에 발생하는 정적 다향성이다.
1. Java 오버로딩 예
class Person {
public void eat(String a) {
System.out.println(" I eat "+ a);
}
public void eat(String a, String b ) {
System.out.println(" I eat "+ a + " and " + b);
}
}
public class CalculateArea {
public static void main(String[] args) {
Person a = new Person();
a.eat("apple"); // I eat apple
a.eat("toato", "phodo"); // I Eat toato and phodo
}
}
오버라이딩(Overriding)
오버라이딩(overriding)이란?
주로 메서드 오버라이딩을 말하며 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의하는 것을 의미한다. 이는 런타임 중에 발생하는 동적 다형성이다.
2. Java 오버라이딩 예
class Animal {
public void bark() {
System.out.println("mumu! mumu!");
}
}
class Dog extends Animal {
@Override
public void bark() {
System.out.println("wal!!! wal!!!");
}
}
public class Main {
public static void main(String[] args) {
Dog d = new Dog();
d.bark(); // wal!! wal!!
}
}
- 부모 클래스는 mumu! mumu!로 짖게 만들었지만, 자식 클래스에서 wal!! wal!!로 짖게 만들었다.
자식 클래스 기반으로 메서드가 재정의됨을 알 수 있다.
반응형
'CS' 카테고리의 다른 글
[Java] 데이터 전달 Map과 DTO 장단점 (0) | 2023.06.01 |
---|---|
Spring MVC 아키텍처 구조 (0) | 2023.05.18 |
객체지향 프로그래밍(OOP)란? (0) | 2023.01.31 |
MVVM 패턴(Model, View, ViewModel)이란? (0) | 2023.01.27 |
MVP 패턴(Model, View, Presenter)이란? (0) | 2023.01.26 |