인터페이스란 무엇인가요?
인터페이스는 메서드를 추상화한 것입니다. 서로 다른 클래스에 동일한 메서드가 있는 경우 인터페이스 사용을 고려해야 합니다.
(1) 인터페이스는 동작 사양 및 프로토콜입니다. 실제로 이는 클래스 간의 합의이자 제약입니다. (2) C#은 다중 상속을 지원하지 않지만 구현을 위해 이 기능을 인터페이스에 남겨 둡니다.
(3) 클래스 간 시스템 리소스 호출 방법이 다르기 때문에 클래스 간의 통신이 어렵습니다. 그러나 인터페이스는 클래스 간의 차이점을 숨기고 원활하게 통신할 수 있도록 해줍니다.
추상클래스(추상클래스)란 무엇인가요?
1. 추상 클래스는 유형의 부분 구현만 제공합니다. 추상 클래스에는 인스턴스 변수와 하나 이상의 2. 추상 클래스의 목적 1) 구상 클래스는 상속에 사용되지 않습니다. Scott Meyers는 가능하다면 구체적인 클래스로부터의 상속을 피해야 한다고 지적한 적이 있습니다. 2) 클래스 A와 클래스 B라는 두 개의 구체적인 클래스가 있다고 가정합니다. 클래스 B는 클래스 A의 하위 클래스입니다. 그러면 가장 간단한 수정 계획은 추상 클래스(또는 Java 인터페이스) C를 만든 다음 클래스 A와 클래스 B를 두는 것입니다. 추상 클래스 C의 하위 클래스가 됩니다. 3) 추상 클래스에는 가능한 한 많은 공통 코드가 있어야 합니다. 코드 재사용률을 높이기 위해. 4) 추상 클래스에는 가능한 한 적은 데이터가 있어야 합니다. 3. 추상 클래스 기반 패턴 및 원리 1) 특정 프로그래밍을 위한 프로그램이 아닌 추상화를 위한 프로그램입니다. 2) 재사용을 위해 상속 대신 합성(Composition)을 사용해 보세요. 3) 템플릿 방식을 사용하세요
4. 상속과 재사용은 언제 사용해야 합니까? 1) 서브클래스는 슈퍼클래스의 역할이 아닌 슈퍼클래스의 특별한 범주입니다. 즉, "is-a"와 "has-a"라는 두 관계를 구별해야 합니다. 2) 하위 클래스를 다른 하위 클래스로 교체해야 하는 상황은 절대 발생하지 않습니다. 디자이너가 클래스가 나중에 다른 클래스의 하위 클래스가 되지 않을 것이라고 확신하지 못하는 경우 해당 클래스를 슈퍼클래스의 하위 클래스로 설계해서는 안 됩니다. 3) 서브클래스는 슈퍼클래스를 확장할 책임이 있지만 슈퍼클래스를 대체(재정의)하거나 취소(무효화)할 책임은 없습니다. 4) 상속은 도구 클래스 상속이 아닌 분류학적으로 의미가 있는 경우에만 사용할 수 있습니다. 추상 메서드는 구현해야 하는 메서드입니다. 그리고 추상 수업에서만. 인터페이스 및 추상 클래스클래스는 여러 인터페이스를 상속할 수 있습니다. . .클래스는 하나의 추상 클래스만 상속할 수 있습니다. . .
동물에게는 호흡법이 있어야 합니다. 호흡하는 방법은 하위 클래스의 문제입니다.
Event의 어댑터는 좋은 애플리케이션입니다. 교사와 같은 간단한 예를 사용하여 연령, 교육 수준, 교사 수 등과 같은 고유한 속성을 가진 추상 클래스로 취급합니다. 그리고 교사도 여러 유형으로 구분되므로 교사 클래스를 상속할 수 있습니다. 고유한 카테고리 속성을 확장하는 반면, 보편적인 속성은 직접 상속됩니다. 인터페이스에 관해서는~ 선생님을 예로 들어보겠습니다. 선생님은 평범한 사람들과 똑같을 뿐만 아니라 시험지 교정, 강의 등 직업과 관련된 행동도 있습니다. 몸체 없는 메서드로서의 동작은 컬렉션으로서 인터페이스입니다. Zhang San과 Li Si 교사는 행동 특성이 다르기 때문에 행동 신체를 확장할 수 있습니다. 이런 의미에서 인터페이스는 행동에 중점을 둡니다. 요컨대, 속성에 대한 상속을 의도적으로 표현할 필요가 없다면 인터페이스는 실제로 추상 클래스를 대체할 수 있는 경우가 많습니다.
인터페이스는 특정 서비스를 구현하기 위한 일반적인 사양을 정의하고 필요한 기능과 상수를 선언하지만 구현 방법을 지정하지는 않습니다. 구현 세부 사항이 제공되지 않는 이유는 서로 다른 엔터티가 서로 다른 방식으로 공용 메서드 정의를 구현해야 할 수 있기 때문입니다. 핵심은 구현해야 하는 일련의 일반 원칙을 설정하는 것입니다. 이러한 원칙이 충족되어야만 인터페이스가 구현된다고 할 수 있습니다.
클래스 멤버는 인터페이스에 정의되어 있지 않습니다! 클래스 멤버의 정의는 완전히 구현 클래스에 맡겨집니다.
더 많은 인터페이스 상속
<span style="color:#000000"><span style="color:#0000bb"></span></span>
<?php interface a{ public function foo (); } interface b{ public function bar (); } //一个接口类可以继承多个接口 interface c extends a , b{ public function baz (); } class d implements c { public function foo (){ } public function bar (){ } public function baz (){ } } ?>
PHP에서는 하나의 클래스가 여러 인터페이스를 구현할 수 있을 뿐만 아니라, 클래스를 상속하면서 여러 인터페이스를 구현할 수도 있습니다. 먼저 클래스를 상속한 다음 인터페이스를 구현해야 합니다
위 내용은 PHP 객체지향(인터페이스) 기본 개념 및 추상 클래스 예제 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!