반응형
1. 메소드 오버라이드(Method override)의 개념
- 부모에게 상속을 받아도 필요하지 않는다면 부모 메소드를 사용하지 않는다.
- 그렇다면 자식클래스에서 부모클래스가 가진 메소드를 다시 재선언할 수 있다.
- 이것을 메소드오버라이드라고 부른다.
- 상속관계에서 부모클래스의 메소드를 자식클래스에서 재선언하는 기능
- 부모클래스의 메소드를 사용하기 부적절한 경우 → 부모클래스의 메소드를 자식클래스에서 재선언하여 사용
- 부모클래스의 메소드는 숨겨지고 자식클래스의 메소드에만 접근 가능
2. 메소드오버라이드 작성 규칙
- 부모클래스의 메소드와 같은 머릿부로 작성해야함
- 즉,
같은 접근제한자 ,
같은 반환형 ,
같은 메소드명 ,
같은 매개변수 ,
같은 예외전달로 작성해야함
3. 메소드오버라이드가 처리하게 된다면?
- 부모클래스의 메소드가 숨겨짐(Hide Method)
- 자식클래스의 메소드에서만 접근이 가능하다.
//부모클래스의 메소드
public void display() {
System.out.println("아이디 = " + id);
System.out.println("이름 = " + name);
}
//자식클래스 내 메소드오버라이드로 선언
@Override
public void display() {
//super.display();
System.out.println("아이디 = " +getId());
System.out.println("이메일 = " +getName());
System.out.println("이메일 = "+email);
}
//이클립스 기능을 이용하면 다음과 같이 선언 - 위와 정확히 같은 뜻
@Override
public void display() {
// super 키워드로 부모클래스의 숨겨진 메소드를 호출한다
super.display(); //아이디와 이름을 출력하는 메소드
System.out.println("이메일 = " + email);
}
4. 💘이클립스의 메소드 오버라이드 기능 제공
- 이클립스에서는 부모클래스의 메소드를 자식클래스에서 오버라이드 선언하도록 자동완성하는 기능을 제공한다.
- 사용법 : 오버라이드 선언 하고 싶은 부모클래스의 메소드명 입력 >> Ctrl + Space
🌊 @Override
- 오버라이드 선언된 메소드를 표현하기 위한 어노테이션 , 메소드 오버라이드 작성 규칙을 위반한 경우 에러 발생함
🌊이클립스로 만든 메소드 오버라이드
- 이클립스에서는 부모클래스의 메소드를 자식클래스에서 오버라이드 선언되도록 자동 완성하는 기능 제공
- 오버라이드 선언하고 싶은 부모클래스의 메소드명 입력 >> [Ctrl]+[Space] >> Override 선택
- 이클립스 기능을 이용하면 다음과 같이 오버라이드가 형성됨
@Override
public void display() {
// super 키워드로 부모클래스의 숨겨진 메소드를 호출한다
super.display(); //아이디와 이름 출력
System.out.println("이메일 = " + email);
}
반응형
'java > inheritance' 카테고리의 다른 글
[inheritance] 7. object 클래스 (0) | 2024.04.23 |
---|---|
[inheritance] 6. 학원인적자원관리 ERP프로그램 (AcademyApp) (2) | 2024.04.23 |
[inheritance] 4. super키워드의 개념 (0) | 2024.04.21 |
[inheritance] 3. 참조변수와 객체와의 관계 (0) | 2024.04.21 |
[inheritance] 2. 포함관계예시 VS 상속관계예시 (0) | 2024.04.20 |