Zastępowanie metod w programowaniu obiektowym jest funkcją języka, która umożliwia podklasie lub klasie potomnej dostarczenie określonej implementacji metody, która jest już udostępniona przez jedną z jej nadklas lub klas nadrzędnych.
Kiedy tworzę własną niestandardową klasę Androida, tworzę extendjej klasę natywną. Wtedy, kiedy chcę zastąpić metodę podstawową, zawsze wywołać super()metodę, tak jak zawsze w onCreate, onStopitp Pomyślałem, że to jest to, ponieważ od samego początku zespół Android doradzał nam, aby zawsze wywoływać supernadpisanie każdej metody. Ale w wielu książkach widzę, że …
Próbuję przesłonić metodę równości w Javie. Mam klasę, Peoplektóra w zasadzie ma 2 pola danych namei age. Teraz chcę przesłonić equalsmetodę, aby móc sprawdzić między 2 obiektami People. Mój kod jest następujący public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // …
Studiuję C # i zastanawiam się, jaki ToStringmoże być cel i korzyść zastąpienia , jak pokazano w poniższym przykładzie. Czy można to zrobić w prostszy sposób, używając wspólnej metody bez nadpisywania? public string GetToStringItemsHeadings { get { return string.Format("{0,-20} {1, -20}", "Office Email", "Private Email"); } } public override string …
Jestem całkiem nowy w CSS3 i chcę mieć możliwość wykonywania następujących czynności: Kiedy dodaję klasę do elementu, nadpisuje ona właściwości innej klasy używanej w tym konkretnym elemencie. Powiedzmy, że tak <a class="left carousel-control" href="#carousel" data-slide="prev"> Chcę mieć możliwość dodania klasy o nazwie bakground-none, która zastąpi domyślne tło w klasie left. …
Mam klasę bazową z funkcją wirtualną i chcę przesłonić tę funkcję w klasie pochodnej. Czy istnieje sposób, aby kompilator sprawdzał, czy funkcja, którą zadeklarowałem w klasie pochodnej, faktycznie przesłania funkcję w klasie bazowej? Chciałbym dodać jakieś makro lub coś, co zapewnia, że nie zadeklarowałem przypadkowo nowej funkcji, zamiast nadpisać starą. …
Chciałbym lepiej zrozumieć, dlaczego w poniższym scenariuszu istnieje różnica w sposobie dziedziczenia stałych klas w porównaniu ze zmiennymi instancji. <?php class ParentClass { const TEST = "ONE"; protected $test = "ONE"; public function showTest(){ echo self::TEST; echo $this->test; } } class ChildClass extends ParentClass { const TEST = "TWO"; protected …
Okej, czytałem i szukałem, a teraz walę głową w ścianę, próbując to rozgryźć. Oto, co mam do tej pory: package com.pockdroid.sandbox; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.widget.ImageView; public class ShadowImageView extends ImageView { private Rect mRect; private Paint mPaint; public ShadowImageView(Context context) { super(context); …
Zdarzały się sytuacje, w których chciałbym przesłonić metodę w klasie z metodą rozszerzającą. Czy jest jakiś sposób, aby to zrobić w C #? Na przykład: public static class StringExtension { public static int GetHashCode(this string inStr) { return MyHash(inStr); } } Przykładem, w którym chciałem to zrobić, jest możliwość przechowywania …
public class SuperClass { public void method1() { System.out.println("superclass method1"); this.method2(); } public void method2() { System.out.println("superclass method2"); } } public class SubClass extends SuperClass { @Override public void method1() { System.out.println("subclass method1"); super.method1(); } @Override public void method2() { System.out.println("subclass method2"); } } public class Demo { public static …
Aktualizacja: Ten problem nie został właściwie zbadany. Prawdziwy problem leży wewnątrz render :json. Pierwsze wklejenie kodu w pierwotnym pytaniu da oczekiwany wynik. Jednak nadal istnieje zastrzeżenie. Zobacz ten przykład: render :json => current_user NIE jest tym samym, co render :json => current_user.to_json Oznacza to, render :jsonże nie wywoła automatycznie to_jsonmetody …
Czy istnieje sposób na zastąpienie metody niewirtualnej? lub coś, co daje podobne wyniki (inne niż tworzenie nowej metody wywoływania żądanej metody)? Chciałbym zastąpić metodę z Microsoft.Xna.Framework.Graphics.GraphicsDevicemając na uwadze testy jednostkowe.
Nie wiem, jak zastępowanie różni się od ukrywania w Javie. Czy ktoś może podać więcej szczegółów na temat różnic między nimi? Przeczytałem samouczek Java, ale przykładowy kod nadal mnie zdezorientował. Żeby było jaśniej, dobrze rozumiem nadpisywanie. Mój problem polega na tym, że nie widzę, czym różni się ukrywanie, z wyjątkiem …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.