为什么父类中可以调用子类的方法?



 abstract class A {
        private $name;
        function __construct($param){
            $this->name = 'liming'.'<br>';
        }
        function getName() {
            echo $this->name;
        }

        // 调用子类中的方法getAge2
        function getAge() {
            $this->getAge2();
        }

        function getAge3() {
            return '23';
        }
    }

class B extends A {
    function getAge2(){
        echo $this->getAge3();
    }
}

$a = new B('a');
$a->getName();
$a->getAge();

php

工画堂喵的猫 9 years, 2 months ago

php是弱类型语言,能调什么方法,取决于对象 本身 是什么类型
这点跟Java不同,Java里一个对象能调什么方法,取决于指向这个对象的 引用 是什么类型

传说神泪丶 answered 9 years, 2 months ago

脑袋思维定势了吧,为何不 (new A)->getAge() 试试? http://3v4l.org/cMZjE

Shrori answered 9 years, 2 months ago

Your Answer