- Kiedy należy
implement
lubextend
należy używać? - Jakie są przykłady z prawdziwego świata?
Czy to jest poprawne?
Wydaje się, że implementacja jest sposobem na wymuszenie istnienia pewnych metod w klasie i prawidłowego sformatowania wywołań funkcji tych metod. Implementacja nie jest jednak sposobem przekazywania zmiennych lub „ustawień” do klasy?
Oczekiwany scenariusz z życia: Mam platformę handlu elektronicznego zawierającą wiele klas płatności, które mają ten sam projekt. Kiedy należy dodać nową klasę płatności, bardzo łatwo jest zastosować się do zdefiniowanego projektu, interface
aby upewnić się, że wszystkie bity i elementy są dostępne od początku.
Rozszerzanie klas powoduje, że klasa rozszerzona (potomna?) Dziedziczy wszystko z klasy nadrzędnej z wyjątkiem metod i zmiennych zadeklarowanych jako private
?
Oczekiwany scenariusz z życia wzięty: wywołałem jedną klasę sessions
z dwiema klasami podrzędnymi o nazwach sessioncookies
i databasesessions
. sessioncookies
i databasesessions
razem dziedziczą szereg wzajemnych opcji konfiguracyjnych z sesji nadrzędnych, ułatwiając zmianę opcji konfiguracji, aby wpływać na wszelkiego rodzaju ostateczne przechowywanie danych odwiedzających.