Zdefiniuj na nowo metody klasy lub klasę

Czy jest jakiś sposób na przedefiniowanie klasy lub niektórych jej metod bez użycia typowego dziedziczenia? Na przykład:

class third_party_library {
    function buggy_function() {
        return 'bad result';
    }
    function other_functions(){
        return 'blah';
    }
}

Co mogę zrobić, aby wymienićbuggy_function()? Oczywiście to właśnie chciałbym zrobić

class third_party_library redefines third_party_library{
    function buggy_function() {
        return 'good result';
    }
    function other_functions(){
        return 'blah';
    }
}

To jest mój dokładny dylemat: zaktualizowałem bibliotekę innej firmy, która łamie mój kod. Nie chcę bezpośrednio modyfikować biblioteki, ponieważ przyszłe aktualizacje mogą ponownie złamać kod. Szukam bezproblemowego sposobu na zastąpienie metody klasy.

Znalazłem tobiblioteka to mówi, że może to zrobić, ale jestem ostrożny, bo ma 4 lata.

EDYTOWAĆ:

Powinienem był wyjaśnić, że nie mogę zmienić nazwy klasy zthird_party_library domagical_third_party_library lub cokolwiek innego z powodu ograniczeń ramowych.

Czy dla moich celów byłoby możliwe dodanie funkcji do klasy? Myślę, że możesz to zrobić w C # za pomocą czegoś, co nazywa się „klasą częściową”.

questionAnswers(12)

yourAnswerToTheQuestion