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
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。