Увод у наслеђивање у ПХП-у
Насљеђивање је начин проширења постојеће класе функционалности у новоствореној класи. Новој креираној класи можемо додати и неке додатне функционалности, осим што проширујемо функционалност основне класе. Када наследимо једну класу, кажемо да је наследна класа дечија класа (подкласа) и од које је наследимо назива се родитељска класа. Родитељска класа је такође позната и као основна класа. На тај начин се омогућава боље управљање програмским кодом и поновна употреба кода. Идеја кориштења насљеђивања састоји се у бољем управљању кодом и поновном употребом кода. У овој теми ћемо сазнати о наслеђивању у ПХП-у.
Врсте наслеђивања у ПХП-у
ПХП подржава разне врсте насљеђивања попут ЈАВА. Доња табела приказује листу врста наслеђивања и статус подршке у ПХП-у.
Тип наследства | Подршка у ПХП-у |
Једно наслеђивање | ДА |
Наслеђивање на више нивоа | ДА |
Хијерархијско наслеђивање | ДА |
Вишеструко наслеђивање | НЕ |
1. Појединачно наслеђивање
ПХП подржава појединачно насљеђивање. Појединачно насљеђивање је концепт у ПХП-у у којем једна класа може наслиједити само једну класу. Морамо имати две класе између овог процеса. Једна је основна класа (родитељска класа), а друга дечија класа. Да разумемо исто са примером. Популарно је познато као једноставно наслеђивање. Ова врста насљеђивања на ПХП језику остаје иста као и ЈАВА, Ц ++, итд.
Шифра:
<_?phpclass MyAccess (
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child extends MyAccess (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child();
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>
МиАццесс је родитељ, а дете је име дечије класе.
Излаз:
2. Наслеђивање на више нивоа
ПХП подржава мултилевел наследство. Код ове врсте наслеђивања имаћемо више од 2 часа. Код ове врсте наслеђивања, матична класа ће наследити дечију класу, а затим дечју класу. Ова врста насљеђивања на ПХП језику остаје иста као и Ц ++ итд.
Шифра:
<_?phpclass ParentClass (
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child_1 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo "Extended By Parent Class -". $this->fist_name;
)
)
class child_2 extends child_1 (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo "Extended By child 1 - ".$this->fist_name;
)
)
$obj1 = new child_1();
$obj1->setVal("This is first inherited class");
$obj1->getVal();
echo "
";
$obj2 = new child_2();
$obj2->setVal("This is second inherited class");
$obj2->getVal();
?>
Излаз:
3. Хијерархијско наслеђивање
ПХП подржава хијерархијско насљеђивање. Хијерархијско насљеђивање је врста насљеђивања у којој се програм састоји од једног родитеља и више од једне дјечје класе. Да разумемо исто и са овим примером. Ова врста насљеђивања на ПХП језику остаје иста као и ЈАВА, Ц ++, итд.
Шифра:
<_?phpclass ParentClass (
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child_1 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
class child_2 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this." - ".$set_this;;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child_1();
$obj1->setVal("This is first child class");
$obj1->getVal();
echo "
";
$obj2 = new child_2();
$obj2->setVal("This is second child class");
$obj2->getVal();
?>
Излаз:
Имамо једну родитељску класу која се зове ПарентЦласс и две дечије класе цхилд_1 и цхилд_2 респективно. Дани сценарио наслеђивања назива се хијерархијско наслеђивање.
Значај наслеђивања у ПХП-у
Важност наслеђа је много више, јер долази до огромних предности с њим.
- Поновна употреба кода једна је од најчешће коришћених у наслеђивању, основна класа остаје онаква каква је између процеса. Као што видимо у горњем примеру целокупног наследства, код се поново користи из једне класе у другу. Не треба од нас да понављамо исту ствар поново и поново.
- Базна класа се може користити у већем броју изведених класа у хијерархији класа. Да, ово је врста наслеђивања код које можемо ићи на продужење у матичној класи са вишеструким наслеђивањем.
- Проширеност је једна од предности наслеђивања помоћу које можемо проширити карактеристику основне класе без мало или никаквих промена да бисмо испунили пословне захтеве. Претпоставимо у почетку да само идемо са родитељском класом само без класе детета. Али у случају потреба, можемо додати дечију класу да бисмо касније испунили наше пословне потребе.
- Поништавање је још једна предност ове карактеристике наслеђивања у којој можемо преписати дефиницију функције основне класе у изведену класу да бисмо извршили измене у складу са пословним захтевима.
- Мања количина кода - у међувремену ћемо имати мање кода компаративно док напредујемо са насљеђивањем у односу на традиционални начин кодирања.
- Наслеђивање је такође омогућило и скривање података. Једини потребни део родитељске класе можемо изложити дечијој класи користећи различите ПХП приступне модификаторе.
- Потпуно подржавајте МВЦ - можемо ићи за МВЦ користећи концепт наследства.
Закључак
Наслеђе би требало да искористимо да бисмо испунили наше пословање, јер има неке додатне предности у поређењу са уобичајеним кодом. Требало би да водимо рачуна о сигурности података док се бавимо наследством. Можемо користити модификатор приступа као приватни, заштићени да бисмо се бавили скривањем података и сигурношћу података. ПХП не подржава више насљеђивања.
Препоручени чланци
Ово је водич за наслеђивање у ПХП-у. Овде смо расправљали о типовима наследства у ПХП-у, тј. Једносмерном, вишеслојном, хијерархијском са одговарајућим узорком кода. Такође можете погледати следећи чланак да бисте сазнали више -
- Сесије у ПХП-у
- ПХП Цомпилер
- ПХП база података
- Преоптерећење у ПХП-у
- Питхон Оверлоадинг