PHP基础学习day5(继承)
来源:互联网 发布:淘宝退款写了假冒品牌 编辑:程序博客网 时间:2024/06/16 06:16
继承的时候跟java一样,继承下来的只能继承父类的public和protected属性和方法继承下来。
子类最多只能继承一个父类,如果想让子类C继承多个父类中的属性和方法,那么只能采用多层继承,即让B继承A,然后C再继承B,这样C中就有了A类和B类中的属性和方法。
比如:
class A{ public $a = 1; } class B extends A { public $b =2; } class C extends B{ public $c =3; function fn(){ echo $this->a; } } $c = new C(); $c->fn();
如果我们要希望调用父类的 构造方法或者是其他的(public / protected)方法:
①类名::方法名()②parent::方法名()
例如:
class B { public $b =2; public function fn(){ echo "我是B类<br>"; } } class C extends B{ public $c =3; function fn(){ echo "我是C类<br>"; B::fn(); } } $c = new C(); $c->fn();
介绍魔术方法:__call():
当定义的类中,调用没有存在的函数的时候,就会自动调用魔术方法__call
比如:
class C{ public $c =3; public function test(){ echo "调用了魔术方法"; } public function __call($name, $arguments) { if($name=="test1"){ $this->test(); } // TODO: Implement __call() method. } } $c = new C(); $c->test1();
在C类中,没有test1这个方法,因此调用了__call方法,如果调用的函数名为test1那么,就会自动调用test方法。
可以利用这个魔术方法来实现PHP中的重载功能。。。。(虽然听起来很滑稽(#滑稽脸))
意思就是:用一个不存在的函数名调用两个不同的函数。。。。(看起来更滑稽)
下面再来看几个魔术常量:
class C{ public $c =3; public function test(){ echo "调用了魔术方法"; echo "<br>".__FILE__; echo "<br>".__DIR__; echo "<br>".__METHOD__; } public function __call($name, $arguments) { var_dump($arguments); if($name=="test1"){ $this->test(); } // TODO: Implement __call() method. } } $c = new C(); $c->test1(2);
阅读全文
0 0
- PHP基础学习day5(继承)
- 《python》学习笔记(Day5),继承类
- Android学习之Java基础篇day5
- Java学习----day5——(3)面对对象程序设计基础篇(具体篇)
- Java学习----day5——(1)面对对象程序设计基础篇
- WEB前端学习 Day5(背景)
- 学习笔记(逆向汇编)Day1-Day5
- 学习笔记(逆向汇编)Day1-Day5
- python学习历程_类(day5)
- python学习-Day5-python数据类型(一)
- 黑马程序员_iso入门基础学习_C语言day5
- Java基础补习Day5
- Django基础,Day5
- 多线程学习总结 day5
- java学习笔记day5
- CCNA学习笔记Day5
- Java学习 day5
- Android学习笔记day5
- (算法分析Week5)Palindrome Number[Easy]
- 关于在VM Workstation 安装Centos 与hadoop所遇见的问题及解决方案
- MySQL 临时表
- 前端之路随笔小记——id VS class
- 算法(一)——算法特性
- PHP基础学习day5(继承)
- Linux基础练习题(3)
- 计蒜客 泥塑课 java练习
- C语言求累加
- HDU 1160(记录路径的最长上升子序列)
- 覆写和重载
- UVA 1590 IP Networks(暴力)
- 清北学堂-D4-T2-xor
- java面试(基础篇)