为了账号安全,请及时绑定邮箱和手机立即绑定

PHP,异常类为什么父类可以调用子类方法

PHP,异常类为什么父类可以调用子类方法

PHP
王亚松 2016-11-13 17:34:55
子类异常: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。

查看完整回答
2 反对 回复 2016-11-13
  • 王亚松
    王亚松
    哦,明白了。应该是类似下面这个例子吧。 class A{ protected $_name="php"; } class B extends A{ public function getName(){ echo $this->_name; } } function a(A $obj) { $obj->getName(); } a(new B());
  • 1 回答
  • 1 关注
  • 1690 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信