인터페이스 및 추상 클래스
인터페이스란 무엇입니까?
아주 기본적인 단어로 연락처 또는 서명입니다. 인터페이스를 구현하는 모든 클래스는 동일한 동작을 가져야 합니다. 즉, 두 개의 매개 변수를 사용하고 문자열을 반환하는 메서드 연락처를 정의하는 경우 이 인터페이스를 구현한 클래스는 동일한 동작을 취해야 합니다.
예를 들어 토론해 보겠습니다.
<?php
interface FlyingCreature
{
public function fly();
}
interface FeatheredCreature
{
public function molt();
}
interface SwimmingCreature
{
public function swim();
}
class Eagle implements FeatheredCreature, FlyingCreature
{
public function fly()
{
// ...
}
public function molt()
{
// ...
}
}
class Penguin implements FeatheredCreature, SwimmingCreature
{
public function molt()
{
// ...
}
public function swim()
{
// ...
}
}
첫 번째는 ISP(인터페이스 분리 원칙)의 좋은 예이며 다른 기사에서 이 원칙에 대해 논의할 수 있습니다.
구체적인 수업이란 무엇입니까?
구체적인 클래스는 new 키워드를 사용하여 인스턴스를 만들 수 있는 클래스입니다.
인터페이스를 사용하면 어떤 이점이 있습니까?
추상 클래스란?
기본적으로 확장할 다른 클래스에 대한 인터페이스를 정의하지만 몇 가지 차이점이 있습니다.
다음은 기본적인 사용 예입니다.
<?php
abstract class Debugger
{
abstract public function debug($message);
}
class BrowserDebugger extends Debugger
{
public function debug($message)
{
echo "<pre>";
print_r($message);
echo "</pre>";
}
}
class CLIDebugger extends Debugger
{
public function debug($message)
{
print_r($message);
}
}
$debugger = new CLIDebugger();
$debugger->debug(array('foo' => 'bar'));
$debugger = new BrowserDebugger();
$debugger->debug(array('foo' => 'bar'));
추상 클래스와 인터페이스의 차이점
이 문서는 원래 medium에 게시되었습니다.
Reference
이 문제에 관하여(인터페이스 및 추상 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/atakde/interface-and-abstract-class-42c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)