Programming/PHP(더이상쓰지않음)

[PHP]추상(abstract)에대하여

SEUNGSAMI 2019. 1. 28. 10:37

추상(abstract)

추상 메소드 : 추상 메소드란 메소드의 시그니처만이 정의된 비어있는 메소드를 의미 메소드의 시그니처만 정의 되어 있고 이 메소드의 구체적인 구현은 하위 클래스에서 오버라이딩 해야 한다는 의미다. 이렇게 내용이 비어있는 메소드를 추상 메소드라고 부른다. 추상 메소드를 하나라도 포함하고 있는 클래스는 추상 클래스가 되고, 자연스럽게 클래스의 이름 앞에 abstract가 붙는다.  
abstract class A{
    public abstract function b();
}
위의 예제는 추상클래스의 선언과 추상메소드의 선언이다.  
public abstract function c(){echo "Hello wordl!"}
위의 예제의 경우 추상메소드가 시그니처만이 정의 된 것이 아닌 본체가 정의 되어있기 때문에 오류가 발생한다.    

추상 클래스를 사용하는 이유

추상 클래스는 상속을 강제하기 위한 것이다. 즉 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 하위 클래스의 책임으로 위임하고 있다. 사실 코드를 이런 식으로 작성하는 경우는 작은 규모의 프로젝트에서는 거의 없다고 한다.

배운지 얼마 되자 않은 지식이라 잘못된 부분이 있을 수있습니다. 그러한 것은 댓글로 달아주시면 감사하겠습니다.