类学习记之----类中属性的重写

<?php

class one{
  //public $yes='USA';
    public $name='one';
 public $pass='OK';
    function out(){
       echo 'hello world';
 }
}

class two extends one{
    // public $name='six';  //不能这样写:  $this->name='six';
 
 function out(){//虽然在这里重写了父类中的out()方法,但父类中的out()方法并不会受到影响,看下面的调用就知道了
    echo $this->pass;//此类中没有pass属性,于是去父类one中找
    echo"</br>";
    $this->yes='china';//只在two类中起作用,这就是所谓类的扩展
    return  $this->name='two'; }

}

 

$two=new two();
echo $two->out();
echo "</br>";
echo $two->name;
echo "</br>";

$one=new one();
$one->out();
echo "</br>";
echo $one->name;
echo "</br>";
$one->out();
echo $one->yes;
//因为one类中的属性yes被注释掉了,所以会出现错误提示

//类中属性和方法的重写就是从父类中复制出你想要的属性或者方法,在子类中,你想怎么改它的属性都不会影响到父类中的属性,当你调用子类中不存在 的属性时,则它会去父类中找看有没有你要调用的属性,如果父类中也没有,则会给出一个错误提示,除非你在调用的时候创建一个属性并赋值,这样才不会出错, 但此时你在子类中创建的属性是属于子类的,它并不会在父类中创建

//我有一个印钱机,从我这里印出来的钱,随你在钱上怎么画都不会影响这个印钱机结构,你在钱上画上一只老虎,那你钱上就会多了一只老虎(扩展),我再印下一张钱的时候,印出来的钱还是印钞机图案中原来的样子

//还有就是在重写父类中的属性或方法时,子类中的访问权限不能比父类中的属性或方法要严格,比如说父类中的方法为public而你在子类中不能为private,而且必须与父类中的属性或方法同名,参数类型和个数不作限制


?>

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值