php第五篇 繼承(2)方法重載 重寫(覆蓋)方法覆蓋 構造函數覆蓋

重載:
是什麼意思?
方法重載,指的是同名函數,用不同的參數,即可以實現兩個函數功能
記住啊,兄弟們,一個類中不能同時存在兩個一模一樣的方法名,但是兩個類中可以哈(存在相同的可以哈)
php沒有方法重載,爲什麼?
代碼演示把,兄弟們:
第一個是錯的,爲什麼,因爲php不支持方法重載。

<?php
class people
{
	function yunsuan($a)
	{
		return $a;
	}
	function yunsuan($a,$b)
	{
		return $a+$b;
	}
	function yunsuan($a,$b,$c)
	{
		return $a+$b+$c;
	}
}
$wo1=new people();
print($wo1->yunsuan(8,8));

?>

在這裏插入圖片描述

爲什麼第二種是對的,因爲php支持。

<?php
class people
{
	function yunsuan($a,$b)
	{
		return $a+$b;
	}
}
$wo1=new people();
print($wo1->yunsuan(8,8));

?>

在這裏插入圖片描述

老師:爲什麼php要覆蓋呢?
陳業貴:我舉個例子把,兄弟們,因爲你們知道覆蓋的前提是什麼嗎?是繼承關係,那覆蓋究竟是爲什麼呢?
因爲這樣子,記住哈,兄弟們,因爲凡是不正常的就覆蓋掉。比如是吧,我學習的是編程技術(子類),父親學習的是電焊技術(父類),我繼承了父親的電焊技術,又自己學習了擴展了編程技術,這是不是不行,爲什麼,因爲這是父親所會的,不是我所會的哈,所以得覆蓋掉。

<?php
class fu
{
	var $age=50;
	function study()
	{
		echo "老子會電焊技術.";
	}
}
class zi extends fu
{
	var $age=20;
	function study()
	{
		echo "我會編程技術.";
	}
}
$zi1=new zi();
$zi1->study();
?>

在這裏插入圖片描述

第二種方法:

<?php
class fu
{
	var $age=50;
	function study()
	{
		echo "老子會電焊技術.";
	}
}
class zi extends fu
{
	var $age=20;
	function study()
	{
		parent::study();
		echo "我會編程技術.";
	}
}
$zi1=new zi();
$zi1->study();
?>

在這裏插入圖片描述

<?php
class fu
{
	var $age=50;
	function study()
	{
		echo "老子會電焊技術.";
	}
}
class zi extends fu
{
	var $age=20;
	function study()
	{
		fu::study();
		echo "我會編程技術.";
	}
}
$zi1=new zi();
$zi1->study();
?>

在這裏插入圖片描述

在這裏插入圖片描述
沒什麼意思,就是看看覆蓋的方法長啥樣!!!
其實重寫挺簡單的,就是覆蓋掉不正常的方法或者屬性把.
構造函數也是可以重寫的哦

<?php
class fu
{
	function  __construct()
	{
		echo "對象誕生了呀";

	}
}
class zi extends fu
{
	function  __construct()
	{
		parent::__construct();
		echo "父類對象唄覆蓋了呀";
	}
}
$fu1=new fu();
echo "<br />";
$zi1=new zi();
?>

在這裏插入圖片描述

記住哈,parent::只是方法的哈,記住哈,屬性用不了哈

<?php
class fu
{
	var $age=50;
	
}
class zi extends fu
{
	var $age=20;
}
$zi1=new zi();
echo $zi1->age;
?>

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章