Załóżmy, że mam metodę w klasie Java i nie chcę, aby jakakolwiek podklasa tej klasy mogła przesłonić tę metodę. Czy mogę to zrobić?Odłóż podklasy od przesłonięcia metody Java
Odpowiedz
Można zadeklarować metodę być final
, jak w:
public final String getId() {
...
}
Aby uzyskać więcej informacji, zobacz http://docs.oracle.com/javase/tutorial/java/IandI/final.html
Wystarczy uczynić metoda końcowy.
Jeśli twoja metoda nie jest częścią twojego zbudowanego API i nie jest bezpośrednio wywoływana przez podklasy, wolę po prostu tworzyć swoją metodę private
.
Jeśli hierarchia klas jest zawarta w pojedynczym pakiecie, należy podać metodę w zakresie pakietu (bez słowa kluczowego zakresu). W związku z tym tylko świat zewnętrzny (w tym inne pakiety) nie może uzyskać do niego dostępu i dlatego nie może go zmienić.
Jeśli metoda nie jest tak naprawdę częścią API, ale musi być widoczny przez podklasy nawet zewnętrznych, wolą zrobić to protected
i final
Wreszcie, jeśli metoda jest częścią API, sprawiają, że public
i final
.
To jest tak oczywiste, dlaczego o tym nie pomyślałem? – xorinzor