인터페이스와 추상클래스에 대해 알아보도록 하겠습니다.
인터페이스
인터페이스는 시작을 interface로 시작합니다.
인터페이스의 역할은 특정한 클래스가 인터페이스를 사용할때 대해 반드시 만들어야 하는 메소드를 구현 시키게 하는 역할을 하게 됩니다.
interface A
{
public function Amethod();
}
class B implements A {
public function Amethod(){
//
}
}
인터페이스는 클래스에서 사용할때 implements를 이용하며, 사용할 경우엔 반드시 메서드를 구현시켜 줘야 합니다.
그렇지 않으면, 에러가 나게 됩니다.
implements는 extends와는 다르게 복수의 인터페이스를 상속 가능합니다.
인터페이스에서 멤버 변수나 메서드들은 모두 public이여야합니다. 만약 public을 사용 하지 않았을때는 default로 public 멤버변수가 됩니다.
추상클래스
추상클래스는 abstract로 시작합니다.
추상클래스의 역할은 abtract메서드를 이용해 인터페이스와 같은 역할을 메소드를 가질수 있습니다.
abstract class A {
abstract function Amethod();
}
class B extends A {
function Amethod(){
//
}
}
또한 abtract를 사용하여 추상 메서드를 만들때는 abtract 키워드를 붙여줘야합니다.
그리고 인터페이스와 마찬가지로 메서드를 구현해줘야합니다.
추상클래스는 extends 를 이용하여 상속 합니다. 그러므로 상속 갯수는 하나밖에 안됩니다.
인터페이스와의 차이점은 완성된 메서드를 구현할수 있다는 점입니다.
abstract class A {
public function Amethod();
public function BMethod(){
return "hello world"
}
}
그러므로 보통 abstact를 사용 할 경우에는 부모클래스로써의 역할로 많이 사용됩니다.
'IT' 카테고리의 다른 글
PHP - 제너레이터 (0) | 2019.06.03 |
---|---|
[laravel] 라라벨 브로드캐스팅+ 라라벨에코서버 (0) | 2019.05.26 |
HTTP헤더 인젝션 (0) | 2019.05.15 |
[laravel 기초공부] 라라벨 - 06 (뷰 블레이드- 기본) (0) | 2019.05.13 |
[laravel 기초공부] 라라벨 - 05 (데이터베이스 - 기본) (0) | 2019.05.09 |