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

Java - słowo kluczowe super

0 głosów
289 wizyt
pytanie zadane 14 marca 2020 w Java przez Gabel88 Początkujący (430 p.)

Witam, gdy tworzę klasę A i klasę B, i klasa B dziedziczy po klasie A, to w klasie B nie mam dostępu do zmiennych z klasy A, nawet gdy użyje słowo super. Gdy zrobię to w jakiejś metodzie lub kostruktorze w klasie B, to mogę używać zmiennych z klasy A. Dodam, że zmienne w klasie A mają modyfikator protected. Dlaczego tak się dzieje ?

public class A
{
    protected int x;
}
public class B extends A
{
    super.x = 10;

    void y()
    {
        super.x = 15;
    }
}

Podkreśla mi błąd w lini "super.x  = 10;".

Błąd to "unknown class 'x' " i "unexpected token".

1 odpowiedź

+2 głosów
odpowiedź 14 marca 2020 przez VirtualMember Pasjonat (15,790 p.)
Nie znam tak bardzo javy ale AFAIK super używa się do 1) wołania konstruktorów jeśli bezpośrednio użyjesz super(arg) 2) wołania funkcji super.foo() 3) odwoływania się do zmiennych jeśli w podklasie i nadklasie mają tą samą zmienną.

To co próbujesz tutaj zrobić to w ciele klasy B dać wartość zmiennej x z klasy A. Ale ta zmienna już jest zadeklarowana (ponieważ obiekt nadklasy zawsze tworzy się przed obiektami podklasy) więc twoje super.x = 10; jest niczym innym jak operacją przypisania wartości do już istniejącej zmiennej, a to wykonujemy w ciałach metod. Stąd super.x = 10; będzie sypało ci błędem
komentarz 14 marca 2020 przez Gabel88 Początkujący (430 p.)
Ok dzięki, już rozumiem
komentarz 14 marca 2020 przez VirtualMember Pasjonat (15,790 p.)
:))

Podobne pytania

0 głosów
1 odpowiedź 739 wizyt
pytanie zadane 31 marca 2018 w JavaScript przez xxx1990 Początkujący (490 p.)
0 głosów
1 odpowiedź 289 wizyt
pytanie zadane 31 stycznia 2021 w Java przez p_wel Nowicjusz (120 p.)
0 głosów
1 odpowiedź 221 wizyt
pytanie zadane 29 sierpnia 2019 w Java przez poldeeek Mądrala (5,980 p.)

93,604 zapytań

142,528 odpowiedzi

322,995 komentarzy

63,090 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...