MapleStory Finger Point
본문 바로가기
Back-end/Java

[Java] 클래스, 클래스 상속과 메소드 오버라이딩 연습

by 디팔⸜( ◜࿁◝ )⸝︎︎ 2022. 8. 24.
package com.example.MyJavaProject;

public class main {
    public static void main(String[] args) {
        Warrior warriorA = new Warrior();
        warriorA.attack();
        warriorA.weaponA = new Sword();
        warriorA.attack();

    }
}
class Warrior{
    Weapon weaponA = new Weapon();
    void attack(){
        weaponA.attack();
    }
};

class Weapon{
    String equipWeapon;
    void attack(){
        if(equipWeapon==null){
            System.out.println("무기가 없어 공격할 수 없습니다.");
        } else{
            System.out.printf("%s로 공격합니다.\n",this.equipWeapon);
        }
    }
}
class Sword extends Weapon{
    Sword(){
        equipWeapon = "칼";
    }
}

 

package com.example.MyJavaProject;

public class main {
    public static void main(String[] args) {
        Warrior warriorA = new Warrior();
        warriorA.weaponA = new Sword();
        warriorA.attack();
        //전사가 칼로 공격합니다.
        warriorA.weaponA = new Bow();
        warriorA.attack();
        //전사가 활로 공격합니다.
        warriorA.weaponB = new Sword();
        warriorA.attack();
        // 전사가 칼로 공격합니다.
        // 전사가 활로 공격합니다.


    }
}
class Warrior{
    Weapon weaponA = new Weapon();
    Weapon weaponB = new Weapon();
    String class_what;
    Warrior(){
        class_what = "전사";
    }
    void attack(){
        if(weaponB.equipWeapon == null){
        weaponA.attack(class_what);}
        else{weaponA.attack(class_what);
            weaponB.attack(class_what);};
    }
};

class Weapon{
    String equipWeapon;
    void attack(String class_what){
        System.out.printf("%s가 %s로 공격합니다.\n",class_what,this.equipWeapon);
        }
    }

class Sword extends Weapon{
    Sword(){
        equipWeapon = "칼";
    }
}

class Bow extends Weapon{
    Bow(){
        equipWeapon = "활";
    }
}

댓글