您好,欢迎访问一九零五行业门户网

php 类跟对象

php 类和对象
面向对象,是当今编程的主流,对于研发人员,可能对面向对象,多多少少的有一些认识,但是有些不常用的或许不是特别清楚。有时也是很有用的。下面就介绍几点知识。
一、final 关键字的一些知识:
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();
会有如下错误:
( ! ) fatal error: cannot override final method a::operation() in d:\wamp\www\examble\index19.php on line 12
二、php  多重继承的实现,以下的例子在php 中将会有个致命的错误。   
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();
( ! ) fatal error: cannot redeclare class b in d:\wamp\www\examble\index19.php on line 24
这种形式的多种继承不被允许的。
如果非要实现多种继承,那么只能通过接口的方式实现呢。
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();
注意接口的方法都是public,接口的方法只有方法,没有方法体,子类重写接口的方法,接口的方法在子类必须都被重写。
其它类似信息

推荐信息