nadpisanie funkcji

0
class Bazowa
{
public void funkcja(){};
}

class Pochodna extends Bazowa
{
public void funkcja(){};
}

public class Test
{
public static void main(String[] args) {}
}
 

W tym przypadku działa dobrze, ale jeżeli wpisze w klasie pochodnej:
"private" lub "protected" lub " " bez określenia (zasięg pakietowy)
" void funkcja(){};"
to wyskakuje błąd.
Z tego co wiem to nie można rozszerzać widzialności metody, ale ograniczać powinno się dać?

0

Wyobraź sobie sytuację w której masz klasy A i B dziedziczącą po A, która ogranicza widoczność metody. Robisz coś takiego:

A a = new B();

a.metodaOOgraniczonejWidocznosciWB();

Taki kod powinien się wywalić ponieważ nie ma dostępu do metody.

W druga stronę można tak zrobić, tzn. B może uczynić metodę bardziej widoczną z jednym wyjątkiem. Nadpisywana metoda nie może być prywatna, ponieważ nie jest wtedy widoczna nawet dla B.

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