Exemplu: O clasă numită Shape (formă)
Superclasă: conţine
metodele abstracte
calculateArea
(calculează suprafaţa) şi Shape
calculatePerimeter.
Circle
Object Rectangle
Triangle
Subclase: implementează
metodele concrete
calculateArea şi
calculatePerimeter.
POO4 - T.U. Cluj 22
Exemplu: O clasă numită Shape
Definiţia
superclasei.
Observaţi că această
clasă este declarată
abstract.
Definiţii de metode
abstracte. Observaţi că
este declarat doar
antetul. Aceste metode
trebuie suprascrise
(overridden) în toate
clasele concrete.
POO4 - T.U. Cluj 23
Exemplu: subclasa Circle
Clasă concretă.
Clasa nu trebuie să
conţină sau să
moştenească metode
abstracte. Metodele
abstracte moştenite
trebuie suprascrise.
Definiţii de
metode concrete.
Observaţi că aici
este declarat corpul
metodei.
POO4 - T.U. Cluj 24
Exemplu: subclasa Triangle
Clasă concretă. Clasa nu
trebuie să conţină sau să
moştenească metode
abstracte. Metodele
abstracte moştenite trebuie
suprascrise.
Definiţii de metode
concrete. Observaţi că
corpurile metodelor sunt
diferite de cele din Circle,
dar semnăturile metodelor
sunt identice.
Alte subclase ale lui Shape
vor suprascrie şi ele
metodele abstracte
calculateArea şi
calculatePerimeter
POO4 - T.U. Cluj 25
Exemplu: clasa TestShape
Creează obiecte
ale subclaselor
folosind referinţe
la superclasă.
Apelează metodele
calculateArea şi
calculatePerimeter.
Este apelată automat
versiunea
corespunzătoare a
fiecărei metode pentru
fiecare obiect.
POO4 - T.U. Cluj 26