[JAVA] 39. 추상화 & 다형성 (상속에서 메서드 찾기)

편준민's avatar
Feb 17, 2025
[JAVA] 39. 추상화 & 다형성 (상속에서 메서드 찾기)
notion image
package ex05.ch02; class 운동선수 { //getter (상태확인) public int getHp() { return 1; } //setter (상태변경) public void setHp(int hp) { } } class 타이슨 extends 운동선수 { int hp = 100; //재정의 public int getHp() { return hp; } //contaxt(문맥) public void setHp(int hp) { this.hp = hp; } } class 맥그리너 extends 운동선수 { int hp = 50; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } } public class ExMeh02 { static void attack(맥그리너 u1) { u1.hp = u1.hp - 10; } static void attack(타이슨 u1) { u1.hp = u1.hp - 10; } static void attack(운동선수 u1) { u1.setHp(u1.getHp() - 10); } public static void main(String[] args) { 맥그리너 u1 = new 맥그리너(); // 구체적 의존 attack(u1); System.out.println(u1.hp); 타이슨 u2 = new 타이슨(); attack(u2); System.out.println(u2.hp); 운동선수 u3 = new 타이슨(); //[운동선수, 타이슨] attack(u3); attack(u3); System.out.println(u3.getHp()); } }

오버라이드(무효로 하다) 기술

  • 자식이 재정의(부모와 같은 이름으로 만들기) 해야지만 부모의 메서드가 무효화
  • 부모의 메서드가 무효화 되면 자식의 메서드를 호출한다 = 동적 바인딩
동적 바인딩 추가 그림
동적 바인딩 추가 그림
Share article

YunSeolAn