1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

PHP parent关键字和方法的覆盖

1、parent关键字

parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。

<?php  //final class dog{//如果在类前面加final,它就不会被子类所继承  class dog{  //	var $name;    //private:私有的    把var 改成private  //	private $name;  外部(类之外)是调用不出来访问不了的(包括子类也是访问不了)    //	protected $name; //也是(类之外)外部是调用不出来访问不了的(这个子类可以访问)  	  //public $name;  //public 公开的  这个是可以访问	  var $name; //如果var声明,默认的是public	  	  //	php 将所有以__(两个下划线)开头的类方法保留为魔术方法。  //	所以在定义类方法时,除了魔术方法,建议不要以__为前缀  //	construct 构成;建造   构造函数声明必须是__construct()  	function __construct($n){  		$this->name = $n;  	}  	final function bark(){  //final 类不想被其它类继承,声明为final   其它函数不想被继承也可以final声明  		echo $this->name."wang";  	}  }    //habadog继承dog   右以用关键字extends来声明继承关系  class habadog extends dog{ //继承类dog的属性和方法过来  	    function __construct(){  //	"test" 因为上面的父类里是带能数的,所以随便(什么都行)传个参数进去,  	parent::__construct("test");  //parent::调用父类的属性(静态)和方法,也经常用于调用父类的构造函数  //	加上这个parent::上面的__construct($n)带参数构造函数的$n就不会出错  // parent::主要用于调用带参数(或不带参数)的构造函数  }    }      $haba = new habadog();  $haba ->name="哈巴狗";  echo $haba->bark();  //输出结果  哈巴狗wang          //$mydog = new dog("zhangsan");  //$mydog->name = "facai";  //$mydog->bark();  ?>

2、方法的覆盖

<?php  class dog{  	public $name;  	public function __construct(){  		echo "测试输出的内容<br>";  	}  	public function bark(){  		echo "父类的bark";  	}  }    class haba extends dog{  	public function bark(){  		echo "继承的内容";  	}  }  $haba = new haba();  $haba->bark();    //输出结果   测试输出的内容  继承的内容    //方法的覆盖:比如:bark()方法名相同:子类的方法,会把父类的方法覆盖  ?>

原文链接:https://www.qiquanji.com/post/7436.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: