java/inheritance

[inheritance] 5. 메소드 오버라이드(Method override)

jeri 2024. 4. 22. 19:10
반응형

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);
}

 

반응형