子类异常:class MyException extends Exception{ public function test(){ echo 111; }}try{ throw new MyException('aaaaaaa');}catch(Exception $e){ $e->test(); //经过测试,这句代码居然没问题。Exception类中没有test方法啊,为什么还能调用}***********************后添加********************************有点明白了。<?php//父类Aclass A{ protected $_name="php"}//子类Bclass B extends A{public function getName(){ echo $this->_name;}}function a(A $obj){ echo $obj->getName();}a(new B()) ; //a()方法的参数类型是A类型,因为B是A的子类,所以可以接受,传递的参数实际上是B对象,所以能够调用B类中的getName()方法。
1 回答
已采纳
qq_青枣工作室_0
TA贡献446条经验 获得超754个赞
如果是JAVA,那编译时会出错。但这是PHP,只要实例对象中有这个方法,就可以调用,跟类型无关。而这里,你抛出的实例是new MyException。
- 1 回答
- 1 关注
- 1690 浏览
添加回答
举报
0/150
提交
取消