PHP Object Oriented Programming (OOP): Abstract Classes (9/13)

이제 우리는 추상적 인 클래스가 무엇인지 살펴볼 것입니다 그래서 저는 이것에 대한 좋은 모범을 생각할 수 없습니다

그래서 저는 고전적인 Foo를 사용할 것입니다 그래서 Foophp 그리고 이것은 수업이 될 것입니다 그리고 그것은 한 가지 방법, public function을 포함 할 것입니다

그리고 우리는 단지 foobar를 반환 할 것입니다 이제 너는 너 자신에게 생각하고 있을지도 모른다 왜 우리 한테 이걸 가르쳐? 우리는 이미 이것이 무엇인지 압니다 그래서 우리가이 foophp를 포함한다면, 그것을 인스턴스화하십시오 $ foo = new Foo (), $ foo-> bar (), echo $ foo-> bar ()

그리고 우리는 거짓말 쟁이가된다 나는 그 클래스 정의 앞에 abstract를 추가 할 것이다 이제 오류가 발생합니다 Foo 추상 클래스를 인스턴스화 할 수 없습니다 그리고 그 이유는 제가 추상으로 선언 한 클래스, 우리는 그것들을 인스턴스화 할 수 없습니다

그래서 우리가 할 수있는 일은 그것들을 확장하는 것뿐입니다 그래서 우리가 새 파일을 만들고이 Bar – so를 호출하면 class Bar는 Foo를 확장합니다 새로운 방법, 공공 기능 baz가 추가 될 것입니다 그리고 이것은 qux를 돌려 줄 것입니다 이제 파일을 필요로한다면 $ bar = new Bar라고 말하면됩니다

그리고 echo $ bar -> baz () __는 what – yes– $ bar-> baz ()입니다 우린 qux를 얻는다 그리고 이것이 Foo를 확장시키고 있기 때문에, 상속되었으므로이 메서드에 액세스 할 수도 있습니다 이제 재미있는 부분이 있습니다 추상 클래스는 인터페이스와 비슷합니다

추상 메소드를 정의 할 수 있기 때문입니다 그래서 우리가 말하면, 추상적 인 공공 기능 foobar (), 라인 끝 부분에 세미콜론을 추가하십시오 인터페이스와 마찬가지로 오류가 발생합니다 Class Bar는 하나의 추상 메소드를 포함하고 있으므로 반드시 사용해야합니다 추상을 선언하거나 나머지 메서드를 구현합니다

Foo :: foobar 그리고 인터페이스를 만들 때 이전에 이것을 보았습니다 이제 우리가 할 수있는 일은이 방법을 구현하는 것입니다 공용 함수 foobar () 그리고 나서 우리는 모르겠다

바룩 스 나는 그것을 부르지 않았다 이게 뭐야? $ bar-> foobar () 그리고 우리는 우리의 barqux를 얻습니다 그리고 이것은 우리가 추상 클래스라고 부르는 것 그리고 내가 그것에 대해 생각하는 방식 기본 구현을 정의 할 수있는 인터페이스입니다