• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przypisywanie obiektu do interfejsu

0 głosów
94 wizyt
pytanie zadane 12 lutego 2018 w Java przez kosttek Początkujący (450 p.)

Witam, ucząc się javy napotkałem sytuacje, której nie potrafię wyjaśnić, a więc dla przykładu, jeśli mamy coś takiego:

public interface MyInterface {
    void method1();
}
public class TestClass implements MyInterface {

    public TestClass() {}

    @Override
    public void method1() {}
    
    public void method2() {}
}
TestClass testClass = new TestClass();
MyInterface myInterface = new TestClass();

Teraz uzywając obiektu testClass mogę wywołać method1 i method2, a używając obiektu myInterface mogę wywołać tylko method1.

A więc jeśli napiszę taki kod:

List<TestClass> testClassList = new ArrayList<>();
testClassList.forEach();

czemu mogę wywołać metodę forEach skoro w dokumentacji javy jest napisane, że ta metoda należy do klasy ArrayList a nie do interfejsu List?

 

Z góry dzięki za każdą pomoc laugh

1 odpowiedź

+1 głos
odpowiedź 12 lutego 2018 przez Wiciorny Maniak (66,480 p.)
wybrane 12 lutego 2018 przez kosttek
 
Najlepsza

Resizable-array implementation of the List interface.

forEach .... nalezy do interfejsu Interface Iterable<T> :) 

Natomiast Klasa ArrayList implementuje  Iterable :)  Dokumentacja implementowanych klas.

Więc kaskadowy polimorfizm 

https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html#forEach-java.util.function.Consumer-

A dlaczego w takim razie skoro należy do ArrayList możesz do Interfejsu list?

A no dlatego że on z kolei implementuje Arraylist poniżej dokumentacja 

https://docs.oracle.com/javase/8/docs/api/java/util/List.html 

1
komentarz 12 lutego 2018 przez kosttek Początkujący (450 p.)

No nie wierzę, że odpowiedź jest była taka prosta, dzięki laugh

Podobne pytania

0 głosów
1 odpowiedź 47 wizyt
0 głosów
3 odpowiedzi 1,253 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)
0 głosów
3 odpowiedzi 137 wizyt
pytanie zadane 28 stycznia w C# i .NET przez Shimeo7 Obywatel (1,850 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

66,379 zapytań

113,130 odpowiedzi

239,489 komentarzy

46,637 pasjonatów

Przeglądających: 317
Pasjonatów: 8 Gości: 309

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...