매개변수의 다형성
조상타입의 매개변수로 자손타입의 인스턴스를 받아오는 것이다.
Attack 메서드를 효율적으로 만들기 위해선 각각 다른 타입의 인스턴스들을 하나의 메서드로 다양한 대상을 공격할 수 있어야한다.
public void Attack(Unit victim){//공격자.Attack(피해자)로 사용
if(this.live==true&&victim.live==true) //피해자와 공격자가 모두 살아있어야함
victim.setHp(victim.getHp()-(this.getWeapon()-victim.getArmor()));
else
return;
}
public static void main(String[] args){
Student St = new Student(50, 0);//체력 50, 마나0, 공격력 10 의 St를 생성
Unit A = new Unit(10, 0);//체력 10, 마나 0짜리 A를 생성
System.out.println("A의 체력: "+A.hp);
St.Attack(A);//St가 A를 공격
System.out.println("A의 체력: "+A.hp);
}
결과: A의체력: 10
A의 체력: 0
class Student는 class Unit의 자손 클래스이다.
이를 통해 알 수 있는 것은 매개변수로 조상타입을 받아도 자손클래스가 매개변수로서 들어갈 수 있다는 것이다.
'프로그래밍 > Java' 카테고리의 다른 글
[LWJGL]Display (0) | 2016.02.19 |
---|---|
[LWJGL] Display 함수 표 (0) | 2016.02.19 |
프로젝트 (0) | 2016.02.14 |
2016/2/12 Math.roundm,sqrt, 클래스변수와 인스턴스변수 (0) | 2016.02.12 |
2016/2/11-접근 제어자, Scanner, 생성자 (0) | 2016.02.11 |