Junior
Mis on abstraktne klass?
sobes.tech AI
Vastus AI-lt
Kunstlik klass on klass, mida ei saa otse instantsida, st selle objekti loomine new abil ei ole võimalik. Seda kasutatakse alusklassina teistele klassidele (järglastele).
Kunstliku klassi peamised omadused:
- Määratletud võtmesõnaga
abstract. - Võib sisaldada nii abstraktseid kui ka tavalisi (konkreetsed) meetodeid.
- Abstraktsed meetodid on märgitud võtmesõnaga
abstractja neil puudub keha (rakendamine). Need peavad olema realiseeritud mitte-abstraktsetes klassides. - Võib sisaldada konstantseid väärtusi ja omadusi.
<?php
abstract class AbstractClass
{
// Abstraktne meetod - peab olema realiseeritud järglases
abstract protected function abstractMethod();
// Tavaline meetod
public function concreteMethod()
{
echo "See on konkreetne meetod\n";
}
}
class ConcreteClass extends AbstractClass
{
// Abstraktse meetodi realiseerimine
protected function abstractMethod()
{
echo "See on abstraktse meetodi realiseerimine\n";
}
}
// Kunstliku klassi eksemplari loomine ei ole lubatud
// $obj = new AbstractClass(); // Viga
// Konkreetsest klassist saab eksemplari luua
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Kunstlikke klasse kasutatakse üldise liidese ja funktsionaalsuse määratlemiseks seotud klasside rühmas, jättes realiseerimise üksikasjad spetsiaalsetele järglastele. Koodikasutaja vaatepunktist saab objekti tüüpi töötada järglaste klasside objektidega, kasutades alusklassina määratletud tüüpi, mis tagab polümorfismi.