單繼承:php中子類只能繼承乙個類.乙個類可以有多個子類
1.繼承的好處
①父類裡面定義的類成員可以不用在子類中重複定義,
節約了程式設計的時間和代價
②同乙個父類的子類擁有相同的父類定義的類成員,
因此外部**呼叫它們的時候可以一視同仁
③子類可以修改和調整父類定義的類成員
1.物件導向的三種訪問許可權
①public公有的類成員,可以在任何地方被訪問
②protected受保護的類成員,可以被其自身以及其子類訪問.
③private私有的類成員,只能被自身訪問
1.儲存的是全域性的類的公有資料,在方法中不能使用$this
不需要建立物件就能訪問的
2.靜態屬性
定義時在訪問控制關鍵字後面新增static即可
3靜態方法定義
在類定義中使用靜態成員的時候,用self關鍵字後面跟著::操作符,即可.
注意,在訪問靜態成員的時候,::後面需要跟$符號.
4.訪問
在本類中 self::成員方法()
在子類中 parent::成員方法()
在類的外部 類名::成員方法()
1.子類中編寫跟父類方法名完全一致的方法可以完成對父類方法的重寫(overwrite)
2.對於不想被任何類繼承的類可以在class之前新增final關鍵字
3.對於不想被子類重寫(修改)的方法,可以在方法定義的前面新增final關鍵字
1.用parent::關鍵字可以訪問父類中被子類重寫的方法
2.用self::可以用於訪問類自身的成員方法,也可以用於訪問自身的靜態成員和類常量;
不能用於訪問類自身的屬性;
使用常量的時候不需要在常量名稱前面新增$符號
3.static關鍵字用於訪問類 自身定義的靜態成員,訪問靜態屬性時需要在屬性前面新增$符號
//inte***ce 關鍵字用於定義介面
inte***ce
icaneat
//implements關鍵字用於表示類實現某個介面
class
human
implements
icaneat()
}class
animal
implements
icaneat()
}$obj = new human();
$monkey = new animal();
$monkey->eat('banana ');
//不能例項化介面
//$eatobj = new icaneat();
//可以用instanceof關鍵字來判斷某個物件是否實現了某個介面
var_dump($obj instanceof icaneat);
function checkeat($obj)else
}//相同的一行**,對於傳入不同的介面的實現的物件的時候,表現是不同的,這就是多型
checkeat($obj);
checkeat($monkey);
//可以用extends讓介面繼承介面
inte***ce
icanpee
extends
icaneat
//當類實現子介面時,父介面定義的方法也需要在這個類裡面具體實現
class
human1
implements
icanpee
public function eat($food){}
}
因為介面的方法實現可以有很多,所以對於介面裡面定義的方法的具體實現是多種多樣的,這種特性我們稱為多型.
比如介面a有兩個實現b和c,b和c對a裡面定義的方法的實現可以是不同的,這種現象就是多型
//abstract關鍵字用於定義抽象類
abstract
class
acaneat
}//繼承抽象類的關鍵字是extends
class
human
extends
acaneat
}class
animal
extends
acaneat
}$man = new human();
$man->breath();//和animal類共用了抽象類中的breath方法
$monkey = new animal();
$monkey->eat('banana');
$monkey->breath();
php物件導向程式設計三
類的封裝和應用 封裝 關鍵字 public protected,private set get 封裝時把一些相關的屬性和行為隱藏起來,從而得到保護和安全 封裝關鍵字的訪問範圍 public 表示全域性,類內部外部子類都可以訪問。protected 表示受保護的,只有本類或子類或父類中可以訪問 pri...
PHP物件導向程式設計
類中常用關鍵字 1 關鍵字 final 用來定義類和方法的乙個重要關鍵字,當定義類的時候該類將不能被繼承,當用來定義方法的時候該方法將不能被過載 2 關鍵字 self 用來用類訪問當前類中的內容的關鍵字,類似與 this關鍵字,但 this是需要 類例項化以後才可以使用,self 可以直接訪問當前類...
php物件導向程式設計
物件導向程式設計的概念 不同的作者之間說法可能不一樣,但是乙個oop語言必須有以下幾方面 抽象資料型別和資訊封裝 繼承 多型 在php中是通過類來完成封裝的 class something function getx 當然你可以按自已的喜好進行定義,但最好保持一種標準,這樣會更有效。資料成員在類中使...