重載:
是什麼意思?
方法重載,指的是同名函數,用不同的參數,即可以實現兩個函數功能
記住啊,兄弟們,一個類中不能同時存在兩個一模一樣的方法名,但是兩個類中可以哈(存在相同的可以哈)
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;
?>