자연어에서 우리는 추상적 개념을 대상에 대한 큰 설명으로 이해하는데, 이는 특정 유형의 대상에 대한 공통 특성입니다. PHP에서도 마찬가지입니다. 클래스를 추상화할 때 클래스의 일반적인 동작을 나타낼 수 있습니다. 이 클래스는 하위 메서드가 구현해야 하는 일부 동작을 나타내는 템플릿이어야 합니다.
PHP 추상 클래스 응용 정의:
추상 클래스 ClassName{
}
PHP 추상 클래스 응용의 핵심 사항:
1. 일부 메서드를 정의하고 하위 클래스는 이를 완전히 구현해야 합니다. 추상화 모든 메소드
2. 추상 클래스에서는 객체를 생성할 수 없으며 그 의미는 확장됩니다
3. 추상 클래스는 일반적으로 추상 메소드를 가지며 메소드에는 중괄호가 없습니다
핵심 PHP 추상 클래스 응용 프로그램의 경우:
1. 추상 메서드는 특정 기능을 구현할 필요가 없으며 하위 클래스에 의해 완성됩니다.
2. 하위 클래스가 추상 클래스의 메서드를 구현할 때 하위 클래스의 가시성은 다음보다 커야 합니다. 또는 추상 메서드의 정의와 동일
3. 추상 클래스의 메서드는 매개 변수를 갖거나 비어 있을 수 있습니다
4. 추상 메서드에 매개 변수가 있는 경우 하위 클래스의 구현도 동일한 숫자를 가져야 합니다. 매개변수
PHP 추상 클래스 적용 예:
abstract public function_name() //중괄호가 없습니다.
PHP 추상 클래스 규칙:
클래스에 최소한 하나의 추상 메서드는 추상 클래스로 선언되어야 합니다.
추상 메서드는 함수 본문을 포함할 수 없습니다.
추상 클래스를 상속하고 추상 메서드를 구현하는 하위 클래스는 추상 클래스와 같거나 낮은 액세스 수준을 가져야 합니다. 메소드
추상 클래스를 상속하는 서브클래스. 모든 추상 메소드를 구현하지 않으면 서브클래스도 추상 클래스입니다.
데모로 간단한 추상 클래스를 구현해 보겠습니다. 직사각형의 면적을 계산합니다. . 이 직사각형은 모양 클래스에서 확장될 수 있습니다.
코드는 다음과 같습니다.
< ?PHP
추상 클래스 Shape {
추상 보호 함수
/ /그리고 일반 차이점은 이 메서드에는 중괄호가 없다는 것입니다.
//이 추상 클래스의 인스턴스를 만들 수 없습니다: $Shape_Rect= new Shape()
}
class Rectangle extends Shape{
private $ width;
private $height;
function __construct($width=0,
$height=0){
$this->width=$width; -> height=$height;
}
function get_area(){
echo ($this->width+$this->height)
}
}
$ Shape_Rect = new Rectangle(20,30);
$Shape_Rect->get_area();
?>
이것도 간단한 예입니다. 기본적으로 이제 PHP에서 추상 클래스의 사용법을 설명할 수 있으므로 나머지 부분에 대해서는 더 이상 말하고 싶지 않습니다. 개인적으로 추상 클래스는 대규모 프로젝트에서 일반적으로 사용된다고 생각합니다. 왜냐하면 지켜야 할 "규칙"이 너무 많아 사용하기 불편하기 때문이라고 생각합니다! 물론 이것은 단지 내 의견이다. 좀 더 말씀드리고 싶습니다. PHP 추상 클래스 응용 프로그램은 단일 상속이므로 하나의 클래스에서만 상속할 수 있고 클래스 A와 클래스 B를 상속하는 하나의 클래스는 상속할 수 없습니다. 인터페이스를 사용해야 합니다. 관련 지식은 당분간 PHP 인터페이스에 대한 지식은 다루지 않겠습니다! 한마디로: 단일 상속과 다중 인터페이스!