📢 Nuovo Corso Laravel API disponibile!

Esercizi Classi Astratte PHP

Ecco degli esercizi semplici con soluzione per praticare le basi delle classi astratte in PHP.

Esercizio 1

Creare una classe astratta "FiguraGeometrica" con un metodo astratto "calcolaArea()". Creare una classe "Quadrato" che estende la classe astratta e implementa il metodo "calcolaArea()" per calcolare l'area del quadrato.
<?php
abstract class FiguraGeometrica {
abstract public function calcolaArea();
}
class Quadrato extends FiguraGeometrica {
private $lato;
public function __construct($lato) {
$this->lato = $lato;
}
public function calcolaArea() {
return $this->lato * $this->lato;
}
}
$quadrato = new Quadrato(5);
echo "Area del quadrato: " . $quadrato->calcolaArea();
?>

Esercizio 2

Creare una classe astratta "Animale" con un metodo astratto "emettiVerso()". Creare una classe "Cane" che estende la classe astratta e implementa il metodo "emettiVerso()" per far abbaiare il cane.
<?php
abstract class Animale {
abstract public function emettiVerso();
}
class Cane extends Animale {
public function emettiVerso() {
return "Woof woof!";
}
}
$cane = new Cane();
echo $cane->emettiVerso();
?>

Esercizio 3

Creare una classe astratta "Veicolo" con un metodo astratto "accelera()". Creare una classe "Automobile" che estende la classe astratta e implementa il metodo "accelera()" per accelerare l'automobile.
<?php
abstract class Veicolo {
abstract public function accelera();
}
class Automobile extends Veicolo {
public function accelera() {
return "L'automobile sta accelerando...";
}
}
$auto = new Automobile();
echo $auto->accelera();
?>

Esercizio 4

Creare una classe astratta "Persona" con un metodo astratto "saluta()". Creare una classe "Studente" che estende la classe astratta e implementa il metodo "saluta()" per salutare come studente.
<?php
abstract class Persona {
abstract public function saluta();
}
class Studente extends Persona {
public function saluta() {
return "Ciao! Sono uno studente.";
}
}
$studente = new Studente();
echo $studente->saluta();
?>

Esercizio 5

Creare una classe astratta "Esercizio" con un metodo astratto "esegui()". Creare una classe "EsercizioMatematico" che estende la classe astratta e implementa il metodo "esegui()" per eseguire un esercizio matematico.
<?php
abstract class Esercizio {
abstract public function esegui();
}
class EsercizioMatematico extends Esercizio {
public function esegui() {
return 5 + 3; // Esempio di esercizio matematico
}
}
$esercizio = new EsercizioMatematico();
echo "Risultato: " . $esercizio->esegui();
?>

Esercizio 6

Creare una classe astratta "Forma" con un metodo astratto "disegna()".
<?php
abstract class Forma {
abstract public function disegna();
}
class Cerchio extends Forma {
public function disegna() {
return "Disegna un cerchio";
}
}
$cerchio = new Cerchio();
echo $cerchio->disegna();
?>

Esercizio 7

Creare una classe astratta "Veicolo" con un metodo astratto "avvia()". Creare una classe "Moto" che estende la classe astratta e implementa il metodo "avvia()" per avviare la moto.
<?php
abstract class Veicolo {
abstract public function avvia();
}
class Moto extends Veicolo {
public function avvia() {
return "La moto è stata avviata.";
}
}
$moto = new Moto();
echo $moto->avvia();
?>

Esercizio 8

Creare una classe astratta "Animale" con un metodo astratto "emettiSuono()". Creare una classe "Gatto" che estende la classe astratta e implementa il metodo "emettiSuono()" per fare il verso del gatto.
<?php
abstract class Animale {
abstract public function emettiSuono();
}
class Gatto extends Animale {
public function emettiSuono() {
return "Miao!";
}
}
$gatto = new Gatto();
echo $gatto->emettiSuono();
?>

Esercizio 9

Creare una classe astratta "Prodotto" con un metodo astratto "calcolaPrezzo()". Creare una classe "Libro" che estende la classe astratta e implementa il metodo "calcolaPrezzo()" per calcolare il prezzo del libro.
<?php
abstract class Prodotto {
abstract public function calcolaPrezzo();
}
class Libro extends Prodotto {
private $prezzo;
public function __construct($prezzo) {
$this->prezzo = $prezzo;
}
public function calcolaPrezzo() {
return $this->prezzo;
}
}
$libro = new Libro(20);
echo "Prezzo del libro: " . $libro->calcolaPrezzo();
?>

Esercizio 10

Creare una classe astratta "Veicolo" con un metodo astratto "ferma()". Creare una classe "Auto" che estende la classe astratta e implementa il metodo "ferma()" per fermare l'auto.
<?php
abstract class Veicolo {
abstract public function ferma();
}
class Auto extends Veicolo {
public function ferma() {
return "L'auto è stata fermata.";
}
}
$auto = new Auto();
echo $auto->ferma();
?>