繼承和多態

來源:互聯網
上載者:User

標籤:

/*class Info
{
const p =10;//將某些常用的常量表示出來,出了類訪問不到
public static $class; //定義為靜態
public $code;
protected $name;
private $sex;

static function Test()//靜態方法
{
echo self::$class;//代表該類,調用自身類裡邊的靜態成員
echo "jtff";
}
function Say()
{

echo self::$class;//普通方法裡邊可以調用靜態成員
echo "hello";}

/*function __set($n,$y)
(
$this->$n = $y;
)*/


//2.繼承:
//概念:如果一個類有子類,他會繼承父類的一切東西,私人成員訪問不到
//定義子類的時候需要加關鍵字:extends
//特點:單繼承,一個兒子只能有一個父親,一個類只能有一個父類
//如果父類中有建構函式,子類在執行個體化時要按照父類的標準來做
//子類對父類方法的重寫,在子類中寫一個同樣的方法
//final: 用來修飾類,代表該類是一個最終類,無法被繼承


/*class Test extends Info
{
public $birthday;

function Run()
{
echo "run";
}
function Say()
{
parent::Say();//調用父類的say方法
echo "world<br>";
}
}
$t = new Test();
/*Info::$class = "0305";
$t->code = "p001";*/
/*$t->Say();
//$t->Run();
var_dump ($t);
echo Info::p;*/

//靜態成員
//普通成員是屬於對象的,不是屬於類的,調用的時候用對象調用
//什麼叫靜態成員:屬於類的不是屬於每個對象的,
//定義靜態成員由static關鍵字修飾
//靜態方法裡邊無法調用普通成員,可以調用靜態成員,使用關鍵字:self
//self代表該類,$this代表該對象

/*Info::$class = "0305";//訪問靜態成員用::

echo Info::$class;
Info::Test();*/

 

class Ren
{
public $name;
public $sex;
function Say()
{
echo "hello";
}
function __tostring() //輸出類裡面的一些描述
{
return "這個類包含變數name和sex";}
function __clone()//對象複製的時候自動執行
{
$this->name = "李四";//$this指複製出來的新對象

}
}
class China extends Ren
{
function Say()
{
echo "你好";
}
}

//多態
//當父類引用指向子類執行個體的時候,由於子類對父類函數進行了重寫,導致了我們在使用該引用去調用相應方法表現的不同
//發生條件:1.必須要繼承
//2.父類引用要指向子類的執行個體~~~~~~~~~~~~~
//2.子類必須對父類的方法進行重寫

//$r = new Ren();//代表Rene的引用

//$r1 = new China();//代表China的引用

//函數重載
//條件:1.函數名必須相同;2.函數裡面參數的個數不同,如果個數相同,類型不同也可形成重載

//__tostring()方法

//對象的複製
$r = new Ren();
$r->name = "張三";
$r1 = clone $r;//clone複製對象
var_dump($r1);

繼承和多態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.