官網資訊:乙個類可以在宣告中用 extends,關鍵字繼承另乙個類的方法和屬性。php不支援多重繼承,乙個類只能繼承乙個基類。
被繼承的方法和屬性可以通過用同樣的名字重新宣告被覆蓋。但是如果父類定義方法時使用了 final,則該方法不可被覆蓋。可以通過 parent:: 來訪問被覆蓋的方法或屬性。
當覆蓋方法時,引數必須保持一致否則 php 將發出 e_strict 級別的錯誤資訊。但建構函式例外,建構函式可在被覆蓋時使用不同的引數。
子類在繼承父類後,會擁有父類的屬性和方法
test_a.php
<?phpclass test_a
}
test_b.php
<?phprequire_once 'test_a.php';
class test_b extends test_a
public function call_b()
public function get_a()
}
測試test.php
<?php
require_once 'test_b.php';
require_once 'test_a.php';
//例項化物件test_b
$b = new test_b();
//呼叫物件test_a中的成員方法get_a
$b->get_a();//繼承了父類允許繼承的方法
//給物件test_a中的成員屬性賦值
$b->name_a=1;//繼承了父類允許繼承的屬性
//呼叫物件test_b中的成員方法get_b
$b->get_b();
//呼叫物件test_b中的成員方法call_b
$b->call_b();
//呼叫物件test_b中的成員方法get_pa
$b->get_a();//在子類方法get_a()中呼叫父類的get_a()方法
//結果
/*test_a
get test_b
call test_b
test_a
^^^^test_b->get_pa()*/
//例項化物件test_a
$a = new test_a();
//呼叫物件test_a中的成員方法get_a
$a->get_a();
//給物件test_a中的成員屬性賦值
$a->name_a=1;
//呼叫物件test_b中的成員方法get_b
//$a->get_b();
//呼叫物件test_b中的成員方法call_b
//$a->call_b();
//結果
/** test_a
* 報錯:call to undefined method test_a::get_b()
* 原物件的呼叫可以
* $a->get_a();
* $a->name_a=1;
* 物件test_b的無法呼叫
* $a->get_b();
* $a->call_b();
* */
golang struct繼承測試
記錄下golang struct的繼承關係 package main import fmt func main type a struct type b struct func a a afunc func a a bfunc func b b afunc func b b cfunc func t...
測試中使用繼承,減少重複寫註解
繼承的語句格式 class 子類名 extends 父類名 class 父類 class 子類 extends 父類 先編寫乙個測試父類basetests,新增 runwith springrunner.class 註解 springboottest 註解 runwith springrunner....
繼承(單繼承 多繼承 菱形繼承 虛繼承)
一 單繼承 單繼承是一種 乙個子類只有乙個直接父類 的繼承關係。二 多繼承 多繼承是一種 乙個子類有兩個或兩個以上直接父類 的繼承關係。三 菱形繼承 菱形繼承由兩個 或以上 單繼承,乙個多繼承構成,結構如下 顯然,上例中assistant類多繼承了student和teacher兩個類,而studen...