溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

實(shí)例展示php中的繼承

發(fā)布時(shí)間:2020-05-23 17:42:58 來(lái)源:億速云 閱讀:194 作者:鴿子 欄目:web開(kāi)發(fā)

                                                           

<?php
/*
繼承性
    1.面向?qū)ο蟮娜筇匦灾?
	2.開(kāi)放性,可擴(kuò)充性
	3.增加代碼的重用性
	4.提高了軟件的可維護(hù)性
	
	php 使弱類型語(yǔ)言,沒(méi)有重載的概念
	
	子類中重載父類的方法
		子類可以聲明和父類相同的方法名,即子類覆蓋父類中同名的方法
		在子類中調(diào)用父類中被覆蓋的方法
			parent::方法名
			 
	在子類中編寫(xiě)構(gòu)造方法,如果父類中也有構(gòu)造方法,一定要調(diào)用父類中的構(gòu)造方法
	注意:子類中重載的方法,不能低于父類中的訪問(wèn)權(quán)限(子類可以放大權(quán)限,但不能縮小權(quán)限)
	*/
	include "./Person.class.php";
	
	class Student extends Person{
		var $school;
		
		function __construct($name="name1",$age =20,$sex="女", $school){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
			$this->school = $school;
		}
		
		function study(){
			echo $this->age;
			echo $this->name.":我在{$this->school}學(xué)習(xí)<br>";
		}
		
		/*
			覆蓋父類的say(),子類中重載的方法,不能低于父類中的訪問(wèn)權(quán)限(子類可以放大權(quán)限,但不能縮小權(quán)限)
			父類中是public function say(){}
			子類中變成了private function say(){}
			private function say(){
				echo "{$this->name}:我在{$this->school}學(xué)習(xí)呢,請(qǐng)不要打擾我<br>";
			}
			這時(shí)候會(huì)報(bào)錯(cuò)Fatal error: Access level to Student::say() must be public (as in class Person
		*/
		
		public function say(){
			parent::say();
			echo "{$this->name}:我在{$this->school}學(xué)習(xí)呢,請(qǐng)不要打擾我<br>";
		}
	}
	
	#$student = new Student;
	#$student->school="北京大學(xué)附屬中學(xué)";
	#$student->name="haha";
	#$student->age=32;
	#$student->study();
	#$student->say();
	
	$student2 = new Student("李會(huì)東",24,"男","北京大學(xué)");
	#echo $student2->school;
	$student2->say();
?>


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI