오버로딩과 오버라이딩이 한글자 차이라 헷갈릴 수 있어서 따로 정리해보았다.
메서드 오버로딩
오버로딩은 함수가 하나의 기능만을 구현하는 것이 아니라 하나의 메서드 이름으로 여러 기능을 구현하도록 하는 Java의 기능이다.
즉, 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다.
오버로딩 조건
오버로딩은 매개변수의 차이로만 구현할 수 있다. 메서드의 이름이 같고, 매개변수의 개수, 타입, 순서가 달라야 한다.
오버로딩 주의할 점
//1번
void speed(String a String b double c) {
}
//2번
void speed(String b String a double c){
}
위의 두 함수는 오버로딩 규칙에 위배되어 오류가 발생한다. 매개변수 이름 순서가 달라서 다르다고 생각할 수 있겠지만, String String double로 매개변수 타입 순서가 같다. 다른게 아니다.
오버로딩 장점
메서드 이름 하나로 상황에 따른 동작을 개별로 정의 할 수 있다.
오버라이딩 (메서드 오버로딩이랑 다름 !)
부모 클래스로부터 상속받은 메서드의 내용을 재정의 하는 것을 말한다. 즉, 자식 클래스의 상황에 맞게 바꿔서 사용하는 것.
//부모 클래스
public void horn() {
System.out.println(" 빵 !")
}
//자식 클래스
@Override
public void horn() {
booster();
}
'개발 > Java' 카테고리의 다른 글
[Java] this와 this() (0) | 2024.04.24 |
---|---|
[Java] 인스턴스 멤버 VS 클래스 멤버 (0) | 2024.04.23 |
[Java] 가변 길이의 매개변수를 사용해 메서드 선언하기 (0) | 2024.04.23 |
[Java] 클래스는 설계도다 (0) | 2024.04.23 |
[Java] 길이와 관련된 함수들 (length, length(), size()) (0) | 2024.04.23 |