5. Mantošana un iekapsulēšana
- Pārskatiet prezentāciju Mantošana un iekapsulēšana
- Izpētiet jtm.activity05 pakotni
- Izveidojiet klasi WaterRoad kā Road apakšklasi.
- Izvēlieties File — New — Class un ievadiet:
- Name: WaterRoad
- Superclass: jtm.activity04.Road
Izvēlieties Constructors from superclass, Inherited abstract methods un spiediet Finish
Vai arī, ja neesat to izdarījis klases izveides vednī: izvēlieties Source — Generate Constructors from Superclass..., select both constructors Road() un Road(String,String,int) un OK.- Izvēlieties Source — Override/Implement methods... un izvēlieties metodi toString().
- Aizvietojiet metodi .toString(), kas atgriež virkni šādā formā: WaterRoad From — To, 00km
- Izveidojiet klasi Ship kā Transport apakšklasi.
- Izveidojiet protected byte lauku buru skaits kuģim:
- Izveidojiet Ship(String id, byte sails) konstruktoru,
Aizvietojiet move(Road), lai tā atgriež virkni formā:
ID Ship is sailing on (Road as String) with x sailskur:
- (Road as String) ir ceļa virknes attēlojums (bez iekavām),
- x ir faktiskais buru skaits.
atgrieziet Cannot sail on (Road as String), ja tas nav WaterRoad.
- Izveidojiet klasi Vehicle kā Transport apakšklasi.
- Izveidojiet protected int riteņu skaits lauku.
- Implementējiet Vehicle(String id, float consumption, int tankSize, int wheels) konstruktoru,
Aizvietojiet metodi move(Road)) transportlīdzeklim, kas atgriež virkni šādā formā:
ID Vehicle is driving on (Road as String) with x wheelskur:
- (Road as String) ir ceļa virknes attēlojums,
- x ir faktiskais riteņu skaits.
atgrieziet Cannot drive on (Road as String), ja tas nav Road.
- Implementējiet Amphibia klasi tā, lai tā būtu Transport apakšklase:
- Padariet visus Amphibia iekšējos laukus privātus.
- Izveidojiet konstruktoru Amphibia(String id, float consumption, int tankSize, byte sails, int wheels)
- Aizvietojiet move(Road road) metodi, ka Amhibija uzvedas kā Vehicle uz zemes ceļa un Ship uz ūdens ceļa.
Padomi
- Izmantojiet .getClass().getSimpleName(), lai iegūtu objekta veido un atkārtoti izmantotu Road.toString() metodi
- Izmantojiet super();, lai atsauktos uz metodes vai konstruktora vecāka klases implementāciju.
- Izmantojiet if(road instanceof WaterRoad), lai pārbaudītu, vai objekts ir WaterRoad (apakš)veids
- Izmantojiet if(road.getClass() == Road.class), lai pārbaudītu, vai objekts ir precīzs Road veids.