Megoldások
13.9.1. Készítsünk megfelelő osztályhierarchiát a hasáb és a gömb felszínének és térfogatának reprezentálására. Közös ősosztályuk neve legyen Test! A testek jellemző adatai (élek, sugár - cm-ben megadva) egész típusúak legyenek, a számított értékek pedig double típusúak!
A Test absztrakt osztály lesz, mivel a felszín és a térfogat kiszámításának metódusai csak a leszármazott osztályokban implementálhatók:

A Hasáb osztály implementációja:

A Gömb osztály implementációja:

Figyeljük meg az ősosztályban absztraktként definiált felszín() és térfogat() metódusok implementálását!
13.9.2. Írjuk felül a két leszármazott osztály toString() metódusát úgy, hogy a példányaik adattagjai és a két metódusuk eredménye az alábbi formában jelenjenek meg (figyeljünk a Gömb osztálynál az 1 tizedes kerekítésre!):
|
Hasáb (élei: 5, 10, 15 cm)
Gömb (sugara: 10 cm) |
A Hasáb osztály
toString() metódusa:

A Gömb osztály toString() metódusa:

A Test osztály
main metódusa:

Az eredmény:

13.9.3. Definiáljuk felül a Hasáb osztály equals() metódusát úgy, hogy két hasáb csak akkor legyen egyenlő, ha éleik hossza - függetlenül azok sorrendjétől - megegyezik!
Az equals() metódus felüldefiniálása:

Ellenőrzés:

Az eredmény:

13.9.4. Definiáljuk felül a Gömb osztály equals() metódusát úgy, hogy két gömb csak akkor legyen egyenlő, ha sugaruk megegyezik. Ellenőrizzük a metódus működését! Egészítsük ki ennek az osztálynak a definícióját úgy, hogy példányaik - sugaruk nagysága alapján - összehasonlíthatók legyenek!
Az equals() metódus felüldefiniálása:

Ellenőrzés:

Az eredmény:

A compareTo() metódus felülírása:

A feladatok forráskódja: Test.rar.