Usunięcie funkcji w klasie, zniszczenie jej inną funkcją klasy.

0

Mam pytanie, chciałbym mając taki kod https://ideone.com/8AUOAR dowiedzieć się czy jest możliwość 'zniszczenia' funkcji inną funkcją? Dla przykładu, jeśli wywołam funkcję land_rocket(), to uniemożliwię ponowne wykorzystanie funkcji move(), move_side() czy move_up().

4

Czy nie prościej było by po prostu ustawić jakieś specjalne pole w klasie np. isMovePossible na określoną wartość, a następnie w odpowiednich funkcjach sprawdzać wartość tego pola?

3

@hit02 ma rację - nie powinieneś bawić się w żadne metaprogramowanie, tylko po ludzku pilnować stanów w metodach za to odpowiedzialnych.
Btw, dlaczego metoda distance może zwrócić ciąg znaków? :|

0

Dzięki @hit02 i @Patryk27.
Mam jeszcze jedno pytanie, jak sprawić, żeby klasa dziedzicząca nie mogła wykorzystać funkcji z klasy bazowej? Chodzi mi żeby dziedziczyła np. wszystkie funkcje oprócz jednej czy dwóch wybranych.

4

Jeśli musisz tak zrobić to znaczy ze projekt jest zły, bo chcesz właśnie złamać zasadę Liskov Substitution.

0

Będzie dziedziczyć wszystkie funkcje - jedyne jak możesz to "spróbować obejść" to nadpisać pustą funkcją Void, tak żeby nic nie robiła.

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