추상화 : 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 기법
ex) 침대, 의자 → 가구 / 강아지, 고양이 → 동물
다형성 : 동일한 이름의 동작이라도 하여도 객체의 실제 타입에 따라서 동작의 내용이 달라질 수 있다
ex) 강아지 → 강아지, 동물 / 침대 → 침대, 가구
package ex05.ch02;
class 운동선수 {
public int getHp() {
return 2;
}
// setter 상태를 변경 하는거
public void setHp(int hp) {
}
}
class 타이슨 extends 운동선수 {
int hp = 100;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
}
class 맥그리거 extends 운동선수 {
int hp = 100;
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(u1.hp);
운동선수 u3 = new 타이슨();
attack(u3);
attack(u3);
attack(u3);
System.out.println(u3.getHp());
}
}

Share article