php继承类

php继承 就像继承家产一样,同样有钱了、、继承是面向对象的三大特性之一,可以使代码重用性高, 提高了软件的可维护性和扩展性。

声明一个子类,使用 extends 关键字 去继承(扩展)一个父类
子类可以从父类,继承所有的内容,包括成员属性,成员方法, 构造方法 ...,在子类中都可以直接使用

虽然子类可以从父类中继承所有内容,但private的成员, 只能在本类中使用, 子类中也不能使用


 封装时,即可以让自己类的内部可以访问,也让子类可以用,但类的外部不能使用, private -->protected

三、子类中重载父类的方法

  1.子类可以声明和父类相同的方法名,即子类覆盖了父类中同名的方法
  鸟类---鸵鸟(飞方法), 在鸵鸟类中将“飞的方法改写”
  子类的方法对父方法的扩展
  在子类中 调用 父类中 被覆盖的方法
对象->成员 类::成员

父类名::方法名()
parent::方法名()


在子类中编写构造方法,如果父中也有构造方法一定要去调用一次父类中被覆盖的那个构造方法

注意: 子类中重载的方法,不能低于父类中访问权限,(子类可以访大权限,但不能缩小权限)
<?php
//abstract
class Student{
var  $name;
var  $passwd;
function __construct($name,$passwd){
$this->name=$name;
$this->passwd=$passwd;
}
  function output()
  {
  echo"zzzzzzzzzzzzzzzzzzzz";
  }
  function i()
  {
  echo"vvvvvvvvvvvvvvvvv";
  }
}

class Univer extends Student{
function output(){
// $this->output();   //第一点
parent::output();   //第二点
parent::i();      //第三点
echo"##############<br/>".$this->name."<br/>".$this->passwd."<br/>";
}
}

$univer=new Univer("chen", "12233434");
$univer->output();
//parent::output(); //第四点
?>


由此可见:
第一点:$this->output();不能加,因为它表示递归。
第二点:parent::output();调用的父类的方法,如果父类的方法没有重载,则可以运用$this->i();和第三点一样。
第三点:parent::i(); ==$this->i();因为没有重载方法。
第四点:parent只能在类中使用。



取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论