php类中的子类与父类

1.php类中的子类与父类
a.子类继承父类
我们在项目开发中,会建立很多类文件,分门别类的归整各种方法。但一些共用的方法,我们想在其他类文件中也调用,避免重写,这就涉及到写类文件时,会继承公共类中的方法。
看个小例子:
代码:

class Common{
    public function output(){
        echo 'hello, Commmon';
        echo '<hr>';
    }
}
class MyClass extends Common{
    public function myoutput(){
        parent::output();
        echo 'hello,MyClass';
    }
}
$my_class = new MyClass();
$my_class->myoutput();


注:在这个程序中我们建了两个文类,Common和MyClass,Common里的方法,我们认为是公共方法,可以单独放到一个文件里,供其他类引用。MyClass类借助extends关键字继承了公共类Common,成为其子类,子类调用父类的方法,使用parent关键字,比如本例中myoutput就调用了公共类中的output方法,从运行结果来看,父类中的方法也输出了结果。有个问题是子类能不能重写父类方法呢,当然是可以的,如下:
代码:

 

class Common{
    public function output(){
        echo 'hello, Commmon-5';
        echo '<hr>';
    }
}
class MyClass extends Common{
    public function output(){
        parent::output();
        echo 'hello,MyClass-12';
    }
}
$my_class = new MyClass();
$my_class->output();


注:从运行结果来看,是可以的,父类Common中定义了方法output,之类MyClass中重写了方法output,实例化子类,调用output时,输出的是子类output中的内容,因为子类方法output又调用了父类方法output,所以父类的方法内容也输出了。
b.父类调用子类的方法
子类能调用父类的方法,那父类能调用子类的方法吗?答案是肯定的。看下面小例子,代码:

 

class Common{
    public function output(){
        echo 'hello, Commmon-5';
        echo '<hr>';
        $my_class = new MyClass();
        $my_class->myoutput('abcd');
    }
}
class MyClass extends Common{
    public function myoutput($input='a'){
        echo '你输入了'.$input;
    }
}
$Common = new Common();
$Common->output();


注:上面程序中,我们看到,MyClass类继承了Common类,我们称MyClass为Common的子类,父类怎么调用子类MyClass的方法呢,需要在父类中先实例化子类,之后,再调用相关方法,严格来讲,MyClass不能称为Common的子类,它只是引用了Common,即使不引用Common,Common中也可以向上面那样调用MyClass的方法。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值