⊗ppOpFnMt 64 of 107 menu

Abstrakte metoder i OOP i PHP

Abstrakte klasser kan også inneholde abstrakte metoder. Slike metoder bør ikke ha implementering, men er nødvendige for å indikere at slike metoder bør være i underklasser. Og selve implementeringen av slike metoder - er allerede en oppgave for underklassene.

For å deklarere en metode som abstrakt, skal du skrive nøkkelordet abstract ved deklarasjonen.

La oss prøve i praksis. La oss anta at alle underklasser av klassen User skal ha metoden increaseRevenue.

Denne metoden skal ta brukerens nåværende inntekt og øke den med en viss verdi, overført som en parameter.

Selve klassen User vet ikke hvilken inntekt underklassen vil ha - tross alt, for en ansatt er det lønn, og for en student - stipend. Derfor vil hver underklasse implementere denne metoden på sin egen måte.

Poenget her er at den abstrakte metoden til klassen User tvinger programmereren til å implementere denne metoden i underklasser, ellers vil PHP gi en feil. På denne måten kan du, eller en annen programmerer, som arbeider med koden din, på ingen måte glemme å implementere den nødvendige metoden i underklassen.

Så, la oss prøve i praksis. La oss legge til en abstrakt metode increaseRevenue i klassen User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Abstrakt metode uten kropp: abstract public function increaseRevenue($value); } ?>

La klassen Employee for nå forbli uendret. I dette tilfellet, selv om man ikke oppretter et objekt av klassen Employee, men bare kjører koden der klassene våre defineres, - vil PHP gi en feil.

La oss nå skrive implementeringen av metoden increaseRevenue i klassen Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // La oss skrive implementeringen av metoden: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

La oss sjekke arbeidet til klassen vår:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

La oss implementere metoden increaseRevenue og i klassen Student. Bare nå vil metoden vår øke stipendet:

<?php class Student extends User { private $scholarship; // stipend public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Metoden øker stipendet: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Legg til i klassen User samme abstrakte metode increaseRevenue. Skriv implementeringen av denne metoden i klassene Employee og Student.

I klassen Figure, lag abstrakte metoder for å få figurens areal og omkrets.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis