Po co implementować interfejs Comparable?

0

Cześć tak jak w temacie,dlaczego implementacja interfejsu Comparable jest taka ważna? Samemu można przecież napisać metodę compareTo i nic to nie zmieni.
Może głupie pytanie,ale zastanawia mnie to ;)

0

Generalnie interfejsy informują o kontrakcie, jaki spełnia dana klasa.
Jeśli wiem, że klasa implementuje jakiś interfejs, to wiem, że mogę używać metod z tego interfejsu.

Skąd np. mam wiedzieć, że klasa Samochód ma metodę compareTo?

0

Czyli służy to wygodzie programisty? Dzięki za odpowiedź : )

1

W bibliotece standardowej masz gotowe metody np. Collections.sort, które potrafią wykorzystać taki interfejs i domyślnie posortować: tak to jest wygoda programisty, bo ma mniej roboty dla typowego, najczęstrzego przypadku użycia.

0

Nie dostrzegam wygody programisty, widzę natomiast duże ułatwienie dla kompilatora.

0

Czyli służy to wygodzie programisty? Dzięki za odpowiedź : )

Ani trochę. To służy do sprawdzania kodu za pomocą systemu typów. Java to nie Python, gdzie dopiero w trakcie wykonania kodu sprawdza się czy dana funkcja w ogóle istnieje czy nie. Java takie rzeczy sprawdza już na etapie kompilacji, poprzez system typów.

1
bogdans napisał(a):

Nie dostrzegam wygody programisty, widzę natomiast duże ułatwienie dla kompilatora.

Tyle tylko, że nie wszystko da się załatwić przez duck typing. Jeśli coś ma metodę get(int) to nie znaczy, że to jest lista i że powinno się ją pakować tam, gdzie inne listy.

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