오버라이딩 오버로딩

무삭이의 개발일지·2023년 4월 3일
0

오버라이딩이란?

상속관계에서 상위 클래스가 정의한 메서드들을 하위 클래스가 재정의 하는 것을 말한다. 지켜야할 부분들이 있는데 오버라이딩시에는 반드시 상위 클래스의 메서드 선언부를 하위 클래스도 동일하게 해야한다는 점이다. 구현부는 달라도 되지만 선언부는 같게 해야만 오버라이딩이 성립한다.

class Animal{
void makeSound(){System.out.println("동물이 소리를 낸다");}
}

class Dog extends Animal{
@Overriding
void makeSound(){System.out.println("멍멍 소리를 낸다.");}
}

메서드 오버라이딩이 된 부분이다.
🧐메서드 이름, 매개변수 타입, 개수, 순서, 반환타입이 부모 메서드랑 같아야 하는데, 접근제어자의 경우는 달라도 가능하다. 하지만 부모의 접근제어자와 같거나 혹은 더 넓은 의미여야한다. 만약 이 경우는 default이기 때문에 default나 protected, public이 가능하다!!!

오버로딩이란?


오버로딩은 같은 이름의 메서드를 여러 개 정의 하는 것을 말한다. 하지만 이름만 같다고 해서 다 오버로딩은 아니다. 선언부에서 다 같지만 매개변수는 달라야한다. 매개변수의 개수, 매개변수의 반환 타입, 매개변수의 순서가 달라야만 오버로딩이 성립된다. 그 예로는 간단하게 🫡생성자 를 생각하면 된다.

🎯오버라이딩과 오버로딩은 모두 다형성의 개념을 구현하는 방법 중 하나이다. 이렇게 다형성을 활용하면, 코드의 유연성과 확장성이 높아지고, 객체지향 프로그래밍의 특성을 잘 살릴 수 있다. 또한 오버로딩을 사용함으로써 코드의 중복을 줄이고, 가독성을 높일 수 있다.

profile
No. Try not. Do or Do not. There is no try.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN