[Java] abstract

박제욱·2024년 3월 8일
0

Java

목록 보기
18/30
post-thumbnail
public class Main {
    public static void main(String[] args) {
        double d1 = 5;

        무기 a무기 = new();
        a무기.공격();
        // 출력 : 칼로 공격합니다.
    }
}

abstract class 무기 {
    abstract void 공격(); // abstract : 리모콘 버튼용
}

classextends 무기 {
    void 공격() {
        System.out.println("칼로 공격합니다.");
    }
}

abstract를 알기 전에 알아야 할 것.

부모 클래스를 상속 한 자손 클래스가 있다. 실행하면 부모 클래스에 있는 메서드가 자손 클래스의 메서드으로 덮어씌어진다. 이렇게 되기 위해 부모 클래스에 해당 메서드를 적어두어야 할까? 답은 Yes다.

class 무기 {
	
}

classextends 무기 {
    void 공격() {
        System.out.println("칼로 공격합니다.");
    }
}

위의 코드처럼 되어있다면 공격 메서드가 실행될 수 있을까? 답은 No다. 꼭 상속한 자손 클래스에 작성한 메서드명을 가진 메서드를 부모 클래스에 내용이 빈 상태로 적어줘야 한다. 그렇지 않으면 연결이 안된다. 리모콘으로 치면 버튼이 눌리지 않은 것과 같다.

class 무기 {
	void 공격();
}

classextends 무기 {
    void 공격() {
        System.out.println("칼로 공격합니다.");
    }
}

위의 코드처럼 적어줘야 한다.

abstract 사용하는 이유.

abstract 사용하는 이유는 위에서 설명한 일부로 부모 클래스에 메서드만 선언한 것 잘 모르는 신입개발자가 '어? 이분 코드 안 짰네. 내가 짜야겠다.'라는 생각을 하면서 해당 부분의 코드를 짜 동료를 화나게 하는 것을 방지하기 위해서 사용한다. 그러므로 abstract가 적혀있으면 이건 일부로 이렇게 해둔 것이니까 그냥 두자. 라고 생각하자. 예전에는 코드에 ~떄문에 일부러 함. 같은 식으로 주석을 달아주었다. 그것 대신 abstract를 사용하여 나타내는 것이다.

abstract를 사용하는 법

class의 왼쪽과 메서드의 자료형의 왼쪽에 abstract를 적어주면 된다.

추가 사항

자손 클래스의 메서드에 매개변수를 적어주었다면 abstract를 적은 부모 클래스의 메서드에도 매개변수를 적어주어야 한다. 적지 않으면 소스 코드를 실행할 수 없다. 오류가 난다.

0개의 댓글