PHP 程式設計/繼承
外觀
< PHP 程式設計
繼承是類的擴充套件。子類具有其父類的所有屬性和方法。
繼承是面向物件程式設計的核心概念之一。PHP 像其他支援繼承的面嚮物件語言一樣支援繼承。
例如,寵物通常具有相似的特徵,無論它們是什麼型別的動物。寵物吃東西、睡覺,可以被命名。但是,不同型別的寵物也有自己的方法:狗會吠,貓會喵喵叫。以下是對此的實現
<?php
class Pet
{
var $_name;
function Pet($name)
{
$this->_name = $name;
}
function eat()
{
}
function sleep()
{
}
}
class Dog extends Pet
{
function bark()
{
}
}
class Cat extends Pet
{
function meow()
{
}
}
$dog = new Dog("Max");
$dog->eat();
$dog->bark();
$dog->sleep();
$cat = new Cat("Misty");
$cat->eat();
$cat->meow();
$cat->sleep();
?>
同樣,我們可以對繼承的類使用 PHP5 語法
<?php
class Pet
{
var $_name
public function __construct($name)
{
$this->_name = $name;
}
function eat()
{
}
function sleep()
{
}
}
?>
考慮兩個人,一個是父母,一個是孩子。根據定義,孩子會從父母那裡繼承某些屬性。因此,孩子可能擁有父母的所有特徵,並且除了這些特徵之外,孩子還可能擁有額外的特徵。考慮到這個類比,考慮兩個類 Person 和 programmer,基類有以下程式碼。
<?php
class Person{
var $legs=2;
var $head=1;
function walk(){
echo "Walk";
}
}
?>
Person 類有兩個屬性 $legs 和 $head,它有一個方法 walk。假設還有另一個類 programmer。programmer 類具有所有這些屬性和方法,因此您可以再次定義它,或者您可以從 Person 類繼承。因此,您可以將 programmer 類定義如下。
<?php
class programmer extends Person{
}
?>
請注意,我們要做的就是使用關鍵字 extends,然後後跟基類,然後基類的所有屬性都將被繼承,這意味著我們可以這樣做。
<?php
$jedai = new programmer();
echo $jedai->legs;
echo $jedai->head;
echo $jedai->walk();
?>
最初,PHP 是一種簡單的繼承語言。但是,從 PHP 5.4.0 開始,一個名為 "trait" 的資料結構允許多重繼承。
示例
<?php
trait MyTrait1
{
function Hello() {
print 'Hello';
}
}
trait MyTrait2
{
function World() {
print 'World';
}
}
class MyClasse1
{
use MyTrait1;
use MyTrait2;
function __construct() {
$this->Hello();
$this->World();
}
}
$Test = new MyClasse1;
?>