Nie rozumiem na czym polega final metoda

Odpowiedz Nowy wątek
2019-02-10 22:28
0

Priwiet
Nie do końca rozumiem na czym polega final metoda.

Wiedzę, że w metodzie main możemy wyzwać metoda() z phone2015 i phone2019, ale co robi final w tym przypadku? Nie możemy zmienić metoda() w 2019? Albo co?

public class phone2015 {
    public final void metoda(){
        System.out.println("void");
    }
}
public class phone2019 exdends phone2019 {

}

I na czym polega overridden? Help me(

edytowany 1x, ostatnio: Władyslaw Parchomenko, 2019-02-10 22:29

Pozostało 580 znaków

2019-02-10 22:37
  1. Override oznacza ze klasa dziedzicząca nadpisuje implementacje
  2. Final oznacza że klasa dziedzicząca nie może nadpisać implementacji

Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
"Final oznacza że klasa dziedzicząca nie może nadpisać implementacji" - Czyli nie możemy zmienić metodę w dziedziczącej klasie? - Władyslaw Parchomenko 2019-02-10 22:42
a to da się zmienić inaczej niż nadpisując? - Wibowit 2019-02-10 23:07
@Władyslaw Parchomenko: dokładnie tak, takiej metody nie możesz nadpisać. @Wibowit wiesz, refleksją da się różne rzeczy zrobić... :D - Shalom 2019-02-10 23:09
Refleksją można zdjąć sobie finala (i potem jechać dalej z generowaniem bajtkodu), ale przecież bez finala oczywistym jest, że reguły dotyczące finala nie obowiązują. Natomiast jeśli finala nie zdejmiesz to inne sztuczki też nie zadziałają. - Wibowit 2019-02-10 23:15

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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