Interfejsy - możliwość korzytsania ze wszystkich funkcji dziedziczonej klasy.

0

Witam,
niedawno zacząłem używać interfejsów i zastanawia mnie jedna rzecz:
Załóżmy mam klasę Pojazd, która przechowuje informacje takie jak szerokość, wysokość położenie obiektu i kolor
Po tej klasie dziedziczą dwie inne: powiedzmy rower i samochód.
Chcę wszystkie te pojazdy trzymać w jednej tablicy. Tworzę więc interfejs:

 
public interface Pojazd {
 public void hamowanie(int predkosc); 
 public void poslizg();
itp.
}

No i załóżmy że zrobię tą tablicę z tymi pojazdami po czym pętlą for po kolei będę wywoływał funkcje odpowiadające za symulację tych pojazdów. Jeśli dobrze rozumiem te interfejsy, to w tej chwili mam dostęp tylko do hamowania i poslizgu. A jak chciałbym pobrać jeszcze szerokość i wysokość (czyli funkcje będące dziedziczone po klasie Pojazdy)? Czy muszę to wszystko zawrzeć w interfejsie? A potem w każdej z klas (rower i samochód) na nowo je tworzyć z dopiską @Override?
Da się jakoś to pominąć i zawrzeć wszystkie funkcje z klasy Pojazd, żeby nie robić bałaganu w kodzie?

0

Możesz zrobić klasę abstrakcyjną.
Interfejs z natury służy do specyfikowania funkcjonalności i tylko tego. Idea interfejsów służy do tego żeby nie udostępniać informacji o wewnętrznej implementacji na zewnątrz.
Czy faktycznie twój Pojazd musi udostępniać swoją wysokość i szerokość?

1 użytkowników online, w tym zalogowanych: 0, gości: 1