middlefitting

Java 메서드 오버라이딩에 관하여 본문

JAVA

Java 메서드 오버라이딩에 관하여

middlefitting 2023. 3. 12. 23:21

메서드 오버로딩이란

메서드 오버라이딩이란 상위 클래스에서 이미 정의된 메서드를 하위 클래스에서 다시 정의하는 것을 말합니다. 하위 클래스는 상위 클래스보다 많은 멤버를 가지게 되고, 이러한 특성은 자연스럽게 메서드 오버라이딩이 필요한 여러 상황을 만들게 됩니다. 메서드 오버라이딩을 통해 하위 클래스는 상위 클래스의 메서드를 재사용하면서 자신만의 새로운 기능을 추가할 수 있습니다.

 

 

 

메서드 오버라이딩의 목적

메서드 오버라이딩의 목적을 좀 더 자세히 살펴보면 다형성 구현, 유지보수성 향상, 확장성 확보가 존재합니다. 하나씩 살펴보면 다음과 같습니다.

 

다형성 구현

하위클래스는 상위 클래스의 메서드를 재정의함으로써 하위 클래스 동작 방식을 다양화할 수 있습니다.

 

유지보수성 향상

부모클래스의 메서드가 변경되는 것은 자식 클래스의 메서드가 변경되는 것보다 당연히 많은 영향을 끼치게 됩니다. 메서드 오버라이딩을 통해 코드변경의 영향을 제한하며 유지보수성을 향상시킬 수 있습니다.

 

확장성 확보

하위 클래스는 상위 클래스의 기능을 변경하거나 자신만의 새로운 기능을 추가할 수 있습니다. 이처럼 메서드 오버라이딩을 통해 하위 클래스는 상위 클래스의 기능을 확장할 수 있습니다.

 

 

 

메서드 오버라이딩 제약조건

이처럼 유용한 메서드 오버라이딩을 사용하기 위해서는 중요한 제약이 있습니다. 첫째는 메서드 선언부가 조상의 클래스의 메서드와 일치해야 한다는 것입니다. 메서드 선언부에 포함되는 내용에는 반환값, 메서드 이름, 매개변수 목록이 존재합니다. 둘째는 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다는 점입니다. 마지막은 조상 클래스의 메서드에 선언된 예외보다 많은 예외를 선언할 수 없다는 것입니다.

 

 

 

오버로딩 vs 오버라이딩

자바를 공부하다 보면 오버로딩, 오버라이딩이라는 단어가 헷갈릴 수 있습니다. 뭔가 비슷한 단어라서 연관이 있는것과 싶은 생각이 들 수도 있습니다. 둘은 전혀 관계없는 내용이기 때문에 구분을 잘 해두셔야 합니다. 메서드 오버라이딩은 상속받은 메서드의 내용을 재정의하는 것, 오버로딩은 기존에 없는 새로운 메서드를 정의하는 내용입니다.

 

'JAVA' 카테고리의 다른 글

getter, setter 그리고 캡슐화  (2) 2023.05.02
[OOP] Java 추상화 이해하기  (0) 2023.02.23
[OOP] 다형성이란 무엇일까  (0) 2023.02.21
[OOP] Java 상속에 관하여  (0) 2023.02.20
[OOP] 캡슐화란 무엇일까  (0) 2023.02.17