PHP는 PHP5부터 객체지향 프로그래밍(OOP)을 지원하는 서버측 프로그래밍 언어입니다. OOP의 핵심 아이디어는 데이터와 동작을 객체에 캡슐화하여 프로그램의 유지 관리성과 확장성을 향상시키는 것입니다. PHP에서 객체 지향 프로그래밍에는 상속, 다형성 및 인터페이스라는 세 가지 주요 특성이 있습니다.
1. 상속
상속이란 한 클래스가 다른 클래스의 속성과 메서드를 상속받을 수 있음을 의미합니다. 상속된 클래스를 부모 클래스 또는 기본 클래스라고 하며, 상속된 클래스를 하위 클래스 또는 파생 클래스라고 합니다. 하위 클래스는 상위 클래스의 속성과 메서드를 상속할 수 있으며 이를 재정의하거나 확장할 수 있습니다.
예를 들어 $name 및 $color 속성과 eat() 및 sleep() 메서드가 있는 동물 클래스 Animal을 정의할 수 있습니다. 그런 다음 Animal 클래스에서 상속하고 bark() 메서드를 추가하는 Dog 클래스 Dog를 정의할 수 있습니다.
class Animal { protected $name; protected $color; public function eat() { echo "$this->name is eating. "; } public function sleep() { echo "$this->name is sleeping. "; } } class Dog extends Animal { public function bark() { echo "$this->name is barking. "; } } $dog = new Dog(); $dog->name = "Fido"; $dog->color = "brown"; $dog->eat(); // 输出: Fido is eating. $dog->sleep(); // 输出: Fido is sleeping. $dog->bark(); // 输出: Fido is barking.
상위 클래스에서는 protected 키워드를 사용하여 $name 및 $color 속성을 정의합니다. 즉, 상위 클래스와 하위 클래스 내에서만 액세스할 수 있으며 클래스 외부에서는 직접 액세스할 수 없습니다. 하위 클래스에서는 public 키워드를 사용하여 bark() 메서드를 정의했는데, 이는 클래스 내부와 외부 모두에서 액세스할 수 있음을 의미합니다.
2. 다형성
다형성은 객체가 여러 형태로 나타날 수 있다는 것을 의미합니다. 객체 지향 프로그래밍에서 다형성은 프로그램의 정확성에 영향을 주지 않고 하위 클래스가 상위 클래스를 대체할 수 있음을 의미합니다.
예를 들어, 동물 정보를 표시하는 show($animal) 메소드가 있는 동물원 클래스 Zoo를 정의할 수 있습니다. 이제 다형성을 달성하기 위해 다양한 동물 개체를 show() 메서드에 전달할 수 있습니다.
class Zoo { public function show($animal) { $animal->eat(); $animal->sleep(); } } $dog = new Dog(); $dog->name = "Fido"; $dog->color = "brown"; $cat = new Cat(); $cat->name = "Fluffy"; $cat->color = "white"; $zoo = new Zoo(); $zoo->show($dog); // 输出: Fido is eating. Fido is sleeping. $zoo->show($cat); // 输出: Fluffy is eating. Fluffy is sleeping.
이 예에서는 Animal 클래스에서 상속되고 eat() 메서드를 재정의하는 새로운 고양이 클래스 Cat을 추가했습니다. 개와 고양이 객체를 show() 메소드에 전달할 수 있으며 둘 다 Animal 클래스의 하위 클래스이므로 다형성을 달성할 수 있습니다.
3. 인터페이스
인터페이스는 일련의 메소드를 정의하지만 특정 구현이 없는 사양입니다. PHP에서 클래스는 특정 기능 요구 사항을 충족하기 위해 하나 이상의 인터페이스를 구현할 수 있습니다.
예를 들어, 동물 소리를 출력하기 위한 talk() 메서드가 있는 Speakable 인터페이스를 정의할 수 있습니다. 그런 다음 개와 고양이 클래스가 이 인터페이스를 구현하도록 할 수 있습니다.
interface Speakable { public function speak(); } class Dog extends Animal implements Speakable { public function bark() { echo "$this->name is barking. "; } public function speak() { $this->bark(); } } class Cat extends Animal implements Speakable { public function meow() { echo "$this->name is meowing. "; } public function speak() { $this->meow(); } } $dog = new Dog(); $dog->name = "Fido"; $dog->color = "brown"; $dog->speak(); // 输出: Fido is barking. $cat = new Cat(); $cat->name = "Fluffy"; $cat->color = "white"; $cat->speak(); // 输出: Fluffy is meowing.
이 예에서는 talk() 메서드가 있는 Speakable 인터페이스를 정의합니다. 그런 다음 Dog 및 Cat 클래스가 이 인터페이스를 구현하고 각각 talk() 메서드를 구현하도록 합니다. 이런 식으로 우리는 구체적인 구현을 알지 못한 채 개와 고양이 개체에 대해 talk() 메서드를 호출할 수 있습니다.
상속, 다형성 및 인터페이스는 PHP 객체 지향 프로그래밍의 세 가지 주요 기능입니다. 이를 통해 코드를 더 잘 구성 및 관리하고 코드 재사용성과 확장성을 향상할 수 있습니다. 이러한 기능을 이해하면 PHP의 객체 지향 프로그래밍 모델을 더 깊이 이해할 수 있습니다.
위 내용은 상속, 다형성 및 인터페이스: PHP의 세 가지 주요 객체 지향 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!