首页 期权学习期权知识正文

PHP parent关键字和方法的覆盖

xiaojiucai 期权知识 2020-08-18 548 0

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

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

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。