본문 바로가기
Language/Java

메서드 오버라이딩 (Method Overriding) = 메서드 재정의

by 태윤2 2020. 6. 5.

메서드 오버라이딩 (Method Overriding) = 메서드 재정의

- 슈퍼클래스로부터 상속받은 메서드를 서브클래스에서 새롭게 재정의 하는 것(덮어씀)

- 기존 슈퍼클래스의 메서드와 동일하게 생긴 메서드를 정의하게 되므로

  서브클래스에서는 더 이상 슈퍼클래스의 메서드가 보이지 않고

  자신이 오버라이딩한 메서드만 보이게 됨 (즉, 슈퍼클래스의 메서드는 은닉됨)

- 슈퍼클래스의 메서드에 기능을 추가하는 등 메서드 내용 변경이 필요할 때 사용

 

< 오버라이딩 규칙 >

  1. 상속 관계 필수
  2. 메서드 시그니쳐(메서드명, 리턴타입, 파라미터)가 일치해야함
  3. 리턴타입은 상속관계에 있는 서브클래스 타입으로 변경은 가능함
  4. 접근 제한자는 같거나 넓은 범위로만 변경 가능
  5. 예외 클래스의 범위는 좁은 범위로만 변경 가능함
  6. 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