Java
[JAVA] Overloading(오버로딩) & Overriding(오버라이딩)
mygomii
2022. 2. 14. 20:16
반응형
- Overloading
- 같은 method를 중복하여 정의하고 다른 시크니처를 가지고 있음
-
fun a(a: int) { } fun a(a: int, b: int) { } fun a(a: int, b: int, c: int) { }
- Overriding (오버라이딩)
- 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것
- 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없음
- 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없음
-
class Parent { public a() { System.out.println("Parent : a"); } } class Child extends Parent { @Override public a() { super.a() System.out.println("Child : a"); } public static void main(String[] args) { Child child = new Child(); System.out.println(child.a()); } } // 결과 Parent : a Child : a
# 오버로딩은 새로운 메소드를 정의하는 것이고, 오버라이딩은 상속받은 기존의 메소드를 재정의 하는 것
참고 사이트
https://gmlwjd9405.github.io/2018/08/09/java-overloading-vs-overriding.html
[Java] 오버로딩과 오버라이딩의 차이(Overloading VS Overriding) - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
반응형