在PHP中,abstract和interface是兩種不同的概念和用法。
示例代碼:
abstract class Animal {
protected $name;
abstract public function sound();
public function setName($name) {
$this->name = $name;
}
}
class Cat extends Animal {
public function sound() {
return 'Meow';
}
}
$cat = new Cat();
$cat->setName('Kitty');
echo $cat->sound(); // Output: Meow
示例代碼:
interface Animal {
public function sound();
}
interface Pet {
public function getName();
}
class Cat implements Animal, Pet {
public function sound() {
return 'Meow';
}
public function getName() {
return 'Kitty';
}
}
$cat = new Cat();
echo $cat->sound(); // Output: Meow
echo $cat->getName(); // Output: Kitty
綜上所述,abstract是用于類的繼承和實現的,可以包含具體的方法實現和屬性,而interface是用于定義類應該實現的方法,只能包含抽象方法和常量。