인터페이스를 상속할 때도 클래스와 마찬가지로 extends 키워드를 사용합니다.
interface 자식인터페이스명 extends 부모인터페이스명 { }
코드로 볼까요?
<?php interface parentinter { public function auto(); } interface childinter extends parentinter { public function run(); public function stop(); public function turn(); } class Car implements childinter { public function run() { return '달립니다.'; } public function stop() { return '멈춥니다.'; } public function turn() { return '회전합니다.'; } } $hello = new Car; echo $hello->run(); ?>
위 코드를 보면 Car 클래스는 인터페이스 childinter를 따릅니다. childinter의 규칙에는 맞으나, childinter 인터페이스는 부모 인터페이스를 상속 받았고
부모 인터페이스인 parentinter에는 auto()가 있습니다. 그래서 childinter에는 메소드 auto()를 선언해야합니다.
하지만 않아서 오류가 발생했죠.
위 코드의 결과
위의 코드에서 Car 클래스에 auto() 메소드를 추가하여 오류가 발생하는지 안하는지 살펴봅시다.
<?php interface parentinter { public function auto(); } interface childinter extends parentinter { public function run(); public function stop(); public function turn(); } class Car implements childinter { public function run() { return '달립니다.'; } public function stop() { return '멈춥니다.'; } public function turn() { return '회전합니다.'; } public function auto() { return '자동운전 모드'; } } $hello = new Car; echo $hello->auto(); ?>
위 코드의 결과
봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.
댓글 0개
정렬기준