오버라이딩이란
자바에서는 서브클래스에서 슈퍼클래스와 완전히 동일한 메소드를 선언할 수 있는 기능이 있습니다.
오버로딩의 경우 인자 개수나 타입이 달라야 합니다.
그러나 오버라이딩의 경우는 인자 개수나 타입이 완전히 일치할 수 있습니다.
오버라이딩의 경우 메소드 호출방법
메소드의 이름과 인수의 개수 및 타입이 완전히 같은 메소드가 서브 및 슈퍼클래스에 모두 정의된 경우
서브클래스에서 새롭게 정의한 메소드가 호출됩니다.
이처럼 서브클래스의 메소드가 슈퍼클래스의 메소드를 대신하는 기능을 오버라이딩이라고 합니다.
오버라이딩 장점
같은 기능을 구현한 서브클래스에서 동일한 메소드를 사용함으로 써 코드의 복잡성과 일관성을 제공할 수 있습니다.
예제 코드
eov1 에서 매개인자가 하나인 show 함수를 호출하면 서브클래스의 오버라이딩된 show 함수가 호출됩니다.
eov1 에서 매개인자가 두개인 show 함수를 호출하면 슈퍼클래스의 show 함수가 호출됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
public class overridingTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
eov eov1 = new eov();
eov1.show(10);
eov1.show(10, 20);
}
}
class ov {
public void show(int iov) {
System.out.println("ov class : " + iov);
}
public void show(int iov, int iov2) {
System.out.println("ov class : " + iov + ", " + iov2);
}
}
class eov extends ov {
public void show(int ieov) {
System.out.println("eov class : " + ieov);
}
}
|
cs |
자바 오버라이딩이란
자바 오버라이딩 사용방법
자바 오버라이딩 장점
자바 오버라이딩 예제
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 추상클래스란 (0) | 2020.12.16 |
---|---|
[JAVA] 오버로딩(overloading)과 오버라이딩(overriding) 차이점 (0) | 2020.12.13 |
[JAVA] 자바 public, private, protected 접근자의 차이점 (0) | 2020.12.13 |
[JAVA] this() 와 super() 의 차이점 (0) | 2020.12.13 |
[JAVA] 슈퍼클래스의 생성자 오버로딩을 서브클래스에서 호출하는 방법 (0) | 2020.12.13 |