[JAVA] 추상클래스(abstract)

JAVA 추상클래스(abstract)

추상 클래스는 상속을 강제하기 위한 것이다. 즉 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 하위 클래스의 책임으로 위임하고 있다.

abstract로 지정되어있는 메서드나 클래스는 직접적으로 사용할 수 없고 반드시 상속을 통해서만 사용할 수 있다.

본체가 있는 메소드는 abstract 키워드를 가질 수 없다. 즉 선언부만 존재해야하며 구현부가 존재하면 사용할 수 없다.

추상메서드의 경우 오버라이딩해서 추상메서드에대한 구체적인 로직을 사용하는 쪽에서 구현해서 사용해야한다. 즉 상속받는 클래스에서 상속받은 선언부를 가지고 구현부를 작성한다.

클래스 내부에 추상메서드가 존재하면 추상메서드를 가지고있는 클래스는 자동적으로 추상클래스가 된다.


추상클래스 내에는 추상 메소드가 아닌 구현부와 선언부가 모두 작성된  메소드가 존재 할 수 있다.



실제 사용법을 보면 공통적으로 사용되는 부분은  일반 메서드로 구현해놓고 상황에따라 달라지는 부분만 추상클래스로 구현해준다.




공통적으로 사용되는 부분은 setOprands로 구현해서 값을 초기화 하도록하고
결과값의 앞에 + 부호 또는 -부호를 상황에따라 다르게 출력하고자 할때와 같은 상황에서 즉 상황에 따라 달라지는 부분은 추상클래스의 추상메소드를 상속받아 구현한다.




추상클래스 단일상속
인터페이스 다중상속

댓글