共計(jì) 902 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 PHP 中,abstract 和 interface 是兩種不同的概念和用法。
- abstract(抽象類):
- 抽象類是用于繼承的類,不能被實(shí)例化。
- 抽象類可以包含抽象方法和非抽象方法。
- 抽象方法是沒有具體實(shí)現(xiàn)的方法,只有方法的聲明。
- 子類繼承抽象類后,必須實(shí)現(xiàn)抽象類中的所有抽象方法。
- 抽象類可以包含屬性、常量和非抽象方法的具體實(shí)現(xiàn)。
示例代碼:
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(接口):
- 接口是一種約定,用于定義類應(yīng)該實(shí)現(xiàn)的方法。
- 接口中只能包含抽象方法和常量,不能包含屬性和方法的具體實(shí)現(xiàn)。
- 類實(shí)現(xiàn)接口后,必須實(shí)現(xiàn)接口中定義的所有方法。
- 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
示例代碼:
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 是用于類的繼承和實(shí)現(xiàn)的,可以包含具體的方法實(shí)現(xiàn)和屬性,而 interface 是用于定義類應(yīng)該實(shí)現(xiàn)的方法,只能包含抽象方法和常量。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完