面向對象,是當今編程的主流,對於研發人員,可能對面向對象,多多少少的有一些認識,但是有些不常用的或許不是特別清楚。有時也是很有用的。下面就介紹幾點知識。
1、final 關鍵字作為方法是可以被子類繼承的。如下面:
class A{
final function operation(){
echo 'a';
}
}
class B extends A{
}
$a=new B();
$a->operation();
result :a
2、final 關鍵字作為類是不可以繼承的,如下:
operation();
( ! ) Fatal error: Class B may not inherit from final class (A) in D:\wamp\www\examble\index19.php on line 9
3、final 關鍵字作為的方法不能被子類覆蓋,也就是說子類不能有相同的方法,如下
class A{
final function operation(){
echo 'a';
}
}
class B extends A{
function operation(){
echo 'a';
}
}
$a=new B();
$a->operation();
class A{
public function operation(){
echo 'a';
}
}
class C{
public function oper(){
echo 'c';
}
}
class B extends A{
public function operation(){
echo 'a';
}
}
class B extends C{
public function operati(){
echo 'd';
}
}
$a=new B();
$a->operation();
如果非要實現多種繼承,那麼只能通過接口的方式實現呢。
interface Displayable{
public function display();
}
interface B{
public function show();
}
class A implements Displayable,B{
public function display(){
echo 'a';
}
public function show(){
echo 'b';
}
}
$ab=new A();
$ab->display();
$ab->show();