Junior
Kas ir abstrakta klase?
sobes.tech AI
Atbilde no AI
Abstrakta klase ir klase, kuru nevar var tieši izveidot, tas ir, tās objekta izveide ar new nav iespējama. Tā ir paredzēta kā pamata klase citām klasēm (paveldētājiem).
Galvenās abstraktās klases īpašības:
- Deklarēta ar atslēgas vārdu
abstract. - Var saturēt gan abstraktas, gan parastas (konkrētas) metodes.
- Abstraktās metodes tiek deklarētas ar
abstractun tām nav ķermeņa (īstenošanas). Tās jāīsteno neabstraktajās klasēs, kas tās manto. - Var saturēt konstantes vērtības un īpašības.
<?php
abstract class AbstractClass
{
// Abstrakta metode - jāīsteno bērnu klasē
abstract protected function abstractMethod();
// Parasta metode
public function concreteMethod()
{
echo "Šis ir konkrēts metodes\n";
}
}
class ConcreteClass extends AbstractClass
{
// Abstraktās metodes īstenošana
protected function abstractMethod()
{
echo "Šī ir abstraktās metodes īstenošana\n";
}
}
// Nav iespējams izveidot abstraktās klases objektu
// $obj = new AbstractClass(); // Kļūda
// Ir iespējams izveidot konkrētās klases objektu
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Abstraktās klases tiek izmantotas kopīgas saskarnes un funkcionalitātes definēšanai saistītām klasēm, atstājot īstenošanas detaļas konkrētiem bērnu klasēm. No koda lietotāja skatpunkta, ar objektiem bērnu klasēm var strādāt, izmantojot pamata abstraktās klases tipu, kas nodrošina polimorfismu.