繼承
1.子類(lèi)使用extends繼承父類(lèi)勾习,可以將父類(lèi)所有內(nèi)容繼承過(guò)來(lái)
2.private 只能自己用,子類(lèi)都無(wú)法使用
3.protected這個(gè)是保護(hù)的權(quán)限懈玻,只能是自己和自己的子類(lèi)使用的成員巧婶,外部不可使用
4.public 公開(kāi)
重載
繼承中的重載(覆蓋):在子類(lèi)中可以寫(xiě)和父類(lèi)同名的方法
parent::訪問(wèn)父類(lèi)中被覆蓋的方法
重要:只要是子類(lèi)的構(gòu)造方法,去覆蓋父類(lèi)中的構(gòu)造方法,一定要在子類(lèi)的最上面調(diào)用一下父類(lèi)被覆蓋的方法
權(quán)限問(wèn)題:子類(lèi)只能大于或等于父類(lèi)的權(quán)限艺栈,不能小于
class Person {
var $name;
var $age;
var $sex;
function __construct($name,$age,$sex){
$this -> name = $name;
$this -> age = $age;
$this -> sex = $sex;
}
function say(){
echo "我的名字是:{$this->name}我的性別是:{$this->sex}";
}
function eat(){
}
function run(){
}
}
class Student extends Person{
var $school;
function__construct($name,$age,$sex,$school){
parent::__construct($name,$age,$sex,$school);
$this->school = $school;
}
function study(){
}
//重載
public function say(){
parent::say();
echo "我在的學(xué)校";
}
}
class Teacher extends Person{
var $name;
var $age;
var $sex;
var $dw;
function teach(){
}
}
關(guān)鍵字
1.instanceof 對(duì)象是不是某個(gè)類(lèi)
2.在PHP中英岭,final不定義常量,所以不能使用final修飾成員屬性
①final可以修飾類(lèi) ---這個(gè)類(lèi)不能去擴(kuò)展湿右,不能有子類(lèi)诅妹,也就是最終的類(lèi)
②final可以修飾方法---這個(gè)方法,就不能在子類(lèi)中覆蓋
3.static可以修飾屬性和方法毅人,不能修飾類(lèi)吭狡,
①使用static修飾成員屬性,存在內(nèi)存的初始化靜態(tài)段丈莺。
②可以被所有同一個(gè)類(lèi)的對(duì)象使用
③第一個(gè)用到類(lèi)(類(lèi)名第一次出現(xiàn)),類(lèi)在加載到內(nèi)存時(shí)划煮,就已經(jīng)將靜態(tài)的成員加到了內(nèi)存
④靜態(tài)的成員一定要用類(lèi)來(lái)訪問(wèn)
Person::$country;
⑤.self可以在類(lèi)中的方法中,代表自己的類(lèi)
⑥腳本一旦加載缔俄,直到腳本釋放才結(jié)束
⑦在靜態(tài)的方法中般此,是不能訪問(wèn)非靜態(tài)的成員的
⑧只要是能使用靜態(tài)的環(huán)境下聲明方法,就最好使用靜態(tài)方法效率
static function say(){
echo"我的名字是:“self::$name.”<br>";
}
4.const
常用define定義常量
define("常量名","值");
const 修飾的成員屬性為常量牵现,只能修飾成員屬性
類(lèi)中
1.常量建議使用大寫(xiě),不能使用$
2.常量一定要在聲明時(shí)就給好初值
3.常量的訪問(wèn)方式和static的訪問(wèn)方式相同邀桑,但只能讀
①在類(lèi)外部使用 類(lèi)名::常量名
②在類(lèi)的外部使用 self::常量名
class Demo{
const SEX = "男"瞎疼;
static function say(){
echo self::SEX."<br>";
}
}
Demo::say();
//echo Demo::SEX;