<code>interface A { public function code(); } interface B { public function code(string $string); } class C implements A,B { //...code }</code>
C가 이 두 인터페이스를 동시에 구현해야 하는 경우 두 인터페이스 A와 B의 코드 메서드를 동시에 사용할 수 있는 방법이 있나요? ? ? ?
로컬 테스트에서는 다음 방법 중 하나만 사용할 수 있습니다
<code>interface A { public function code(); } interface B { public function code(string $string); } class C implements A,B { //...code }</code>
C가 이 두 인터페이스를 동시에 구현해야 하는 경우 두 인터페이스 A와 B의 코드 메서드를 동시에 사용할 수 있는 방법이 있나요? ? ? ?
로컬 테스트에서는 다음 방법 중 하나만 사용할 수 있습니다
PHP는 오버로드될 수 없으며(메서드 이름은 동일하지만 매개변수가 일치하지 않음) 상속에서 재정의될 수 있습니다(매개변수가 일치하는지 여부에 관계없이 동일한 메소드 이름).
즉, PHP의 매개변수가 어떻게 변경되더라도 메소드 이름만 동일하면 이 클래스의 동일한 메소드로 간주됩니다.
물론 동적 언어로서 매직 메소드를 통해 Java의 오버로딩을 시뮬레이션할 수 있습니다. 참조: http://php.net/manual/en/lang...
AB 인터페이스의 특정 로직을 C 인터페이스에 통합하고 C 인터페이스를 직접 호출하는 조잡한 방법이 있습니다^_^
func_get_args http://php.net/manual/en/func...
이러한 작성 방법 자체는 시행착오일 뿐입니다. 공개 메소드는 외부에서 작성되고 클래스에서 직접 호출되므로 모든 포트에 동일한 내용을 작성하지 마십시오.
PHP의 특징에 대해 알아볼 수 있습니다.
php는 다형성을 지원하지 않으므로 이러한 방식은 피하는 것이 가장 좋습니다