메서드 오버라이딩 (Method Overriding) = 메서드 재정의
- 슈퍼클래스로부터 상속받은 메서드를 서브클래스에서 새롭게 재정의 하는 것(덮어씀)
- 기존 슈퍼클래스의 메서드와 동일하게 생긴 메서드를 정의하게 되므로
서브클래스에서는 더 이상 슈퍼클래스의 메서드가 보이지 않고
자신이 오버라이딩한 메서드만 보이게 됨 (즉, 슈퍼클래스의 메서드는 은닉됨)
- 슈퍼클래스의 메서드에 기능을 추가하는 등 메서드 내용 변경이 필요할 때 사용
< 오버라이딩 규칙 >
- 상속 관계 필수
- 메서드 시그니쳐(메서드명, 리턴타입, 파라미터)가 일치해야함
- 리턴타입은 상속관계에 있는 서브클래스 타입으로 변경은 가능함
- 접근 제한자는 같거나 넓은 범위로만 변경 가능
- 예외 클래스의 범위는 좁은 범위로만 변경 가능함
- static, final, private 제한자가 지정된 메서드는 오버라이딩 불가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class Person {
public void eat() {
System.out.println("먹기!");
}
public void jump() {
System.out.println("Person 의 점프");
}
}
class Spiderman extends Person {
public void jump() {
System.out.println("Spiderman 의 점프");
}
//오버라이딩 단축키 : Alt +Shift + S / V
@override // 어노테이션(Annotation) : 오버라이딩 규칙이 맞나 확인하는것
틀리면 오류 public void eat() {
System.out.println("Spiderman 의 먹기!");
}
}
|
cs |
'Language > Java' 카테고리의 다른 글
레퍼런스 super (0) | 2020.06.05 |
---|---|
접근제한자 (0) | 2020.06.05 |
상속에서의 생성자 (0) | 2020.06.04 |
상속(Inheritance) (0) | 2020.06.04 |
Singleton Design Pattern(싱글톤 디자인 패턴) (0) | 2020.06.01 |