java 추상클래스
-
게시물 수정 , 삭제는 로그인 필요
사진에서 주황색부분을 위 순서부터 마법사, 마법사, 얼음마법사, 얼음마법사, 얼음지팡이로 바꾸고 싶은데 코드를 어떻게 수정해야 할까요??
반나절 넘게 구글링하는데도 모르겠네요...
아시는 분 가능한 빨리 알려주시면 감사하겠습니다ㅜ
----------------------------------------------------------------------------------------------사진이 잘 보이실까봐 코드도 올립니다.
public class Task22{
public static <마법사> void main(String[] args) {
캐릭터 a전사 = new 캐릭터();
캐릭터 a마법사 = new 캐릭터();
캐릭터 a얼음마법사 = new 캐릭터();
a전사.power = 10;
a마법사.power = 5;
a얼음마법사.power = 5;
a전사.공격();
//출력 : 전사(이)가 칼(으)로 공격합니다.
//출력 : // 데미지 : 전사 기본공격력(10) * 칼 공력력(20) => 200
a전사.set무기(new 활());
a전사.공격();
// 출력 : 전사(이)가 활(으)로 공격합니다.
// 출력 : 데미지 : 전사 기본공격력(10) * 활 공격력(100) => 1000
a마법사.set무기(new 불지팡이());
a마법사.공격();
// 출력 : 마법사(이)가 불지팡이(으)로 공격합니다.
// 출력 : 데미지 : 마법사가 기본공격력(5) * 불지팡이 공격력(50) => 250
a얼음마법사.공격();
// 출력 : 마법사(이)가 얼음지팡이(으)로 공격합니다.
// 출력 : 데미지 : 마법사 기본공격력(5) * 얼음지팡이 공격력(60) => 300
}
}
//ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
class 캐릭터 {
무기 weapon;
int power;
캐릭터 () {
this.weapon = new 칼();
}
void 공격() {
weapon.작동(power);
}
public void set무기(무기 newWaeapon) {
this.weapon = newWaeapon;
}
}
abstract class 무기 {
int weaponPower;
String weaponType;
void 작동(int warriorPower) {
System.out.println("전사(이)가 %s(으)로 공격합니다.\n", weaponType);
System.out.println("데미지 : 전사 기본공격력(%d) * %s 공격력(%d) => %d\n", warriorPower, weaponType, weaponPower, warriorPower*weaponPower);
}
}
//ㅋㅋㅋㅋㅋㅋㅋ
class 칼 extends 무기 {
칼() {
this.weaponPower = 20;
this.weaponType = "칼";
}
}
class 활 extends 무기 {
활() {
this.weaponPower = 100;
this.weaponType = "활";
}
}
class 불지팡이 extends 무기 {
불지팡이() {
this.weaponPower = 50;
this.weaponType = "불지팡이";
}
}
class 얼음지팡이 extends 무기 {
얼음지팡이() {
this.weaponPower = 50;
this.weaponType = "얼음지팡이";
}
}
#java 추상클래스 #java 추상클래스 인터페이스 #java 추상클래스 사용 이유 #java 추상클래스 생성자 #java 추상클래스 인터페이스 차이 #java 추상클래스 예제 #java 추상클래스 상속 #java 추상클래스 변수 #java 추상클래스 객체생성 #java 추상클래스 구현