Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21993

Dlaczego przy tworzeniu nowego obiektu, z reguły deklarujemy referencję z typu nadklasy?

$
0
0

Witam! 

Być może w temacie niezbyt jasno się wyraziłem dlatego może jakiś przykład:

1. Chcemy stworzyć obiekt typu LinkedList. W literaturze, najczęściej spotykany zapis tego procesu to:

List<String> list = new LinkedList<String>();

2. Chcemy stworzyć obiekt typu HashSet. W literaturze spotkamy to:

Set<Integer, String> list = new HashSet<Integer, String>();

Teraz jest już chyba jasne o co chodzi. Dlaczego referencja jest deklarowana z nadklasy obiektu który tworzymy? Czy odnosimy z tego tytułu jakąś korzyść? Bo moim zdaniem przysparza to raczej problemów. Jak wiadomo kompilator nie patrzy na obiekt tylko na referencje. W związku z tym gdy w nadklasie nie będzie metody którą wywołujemy dostaniemy ComplieError. Skoro tak to logika podpowiada żeby deklarować jak "najniższe" referencje (najbliższe albo po prostu te same względem obiektu który tworzymy).

Dlaczego więc tego nie robimy i dlaczego warto deklarować typ postawiony wyżej w hierarchii dziedziczenia?

Dziękuję :)


Viewing all articles
Browse latest Browse all 21993

Trending Articles


Sprawdź z którą postacią z anime dzielisz urodziny


MDM - Muzyka Dla Miasta (2009)


Częstotliwość 3.722MHz


POSZUKIWANY TOMASZ SKOWRON-ANGLIA


Ciasto 3 Bit


Kasowanie inspekcji Hyundai ix35


Steel Division 2 SPOLSZCZENIE


SZCZOTKOWANIE TWARZY NA SUCHO


Potrzebuje schemat budowy silnika YX140


Musierowicz Małgorzata - Kwiat kalafiora [audiobook PL]