Pytania otagowane jako abstract-class

Klasa abstrakcyjna to klasa, której nie można utworzyć instancji. Generalnie mają być rozszerzone / podklasy i generalnie mają „abstrakcyjne metody”, które muszą być implementowane przez podklasy.

5
Czy ma sens definiowanie interfejsu, jeśli mam już klasę abstrakcyjną?
Mam klasę z pewnymi domyślnymi / współdzielonymi funkcjami. Używam abstract classdo tego: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected abstract string …

5
Czy wszystkie metody publiczne w klasie abstrakcyjnej powinny być oznaczone jako wirtualne?
Niedawno musiałem zaktualizować abstrakcyjną klasę bazową w niektórych OSS, których używałem, aby była bardziej testowalna, czyniąc je wirtualnymi (nie mogłem użyć interfejsu, ponieważ łączył dwa). To sprawiło, że pomyślałem, czy powinienem zaznaczyć wszystkie metody, których potrzebowałem wirtualny, czy też powinienem oznaczyć każdą publiczną metodę / właściwość wirtualną. I na ogół …

6
Jaki kod powinien być zawarty w klasie abstrakcyjnej?
Ostatnio niepokoją mnie zastosowania klas abstrakcyjnych. Czasami klasa abstrakcyjna jest wcześniej tworzona i działa jako szablon tego, jak działają klasy pochodne. Oznacza to mniej więcej, że zapewniają one pewną funkcjonalność na wysokim poziomie, ale pomijają pewne szczegóły do ​​zaimplementowania przez klasy pochodne. Klasa abstrakcyjna określa potrzebę tych szczegółów, wprowadzając pewne …

3
Właściwość abstrakcyjna w klasie bazowej, aby zmusić programistę do jej zdefiniowania
Koduję za pomocą wzorca stanu dla urządzenia osadzonego. Mam podstawową / abstrakcyjną klasę o nazwie State, a następnie każda dyskretna (konkretna) klasa stanu implementuje abstrakcyjną klasę State. W klasie państwowej mam kilka metod abstrakcyjnych. Jeśli nie zaimplementuję metod abstrakcyjnych w klasie dyskretnej (konkretnej), Visual Studio wyświetli błąd podobny do tego: …

3
Abstrakcyjne klasy podstawowe i konstrukcja kopii, zasady praktyczne
Często dobrym pomysłem jest posiadanie abstrakcyjnej klasy bazowej do izolowania interfejsu obiektu. Problem polega na tym, że konstrukcja kopiowania, IMHO, jest domyślnie dość zepsuta w C ++, przy czym domyślnie generowane są konstruktory kopiowania. Więc jakie są problemy, kiedy masz abstrakcyjną klasę bazową i surowe wskaźniki w klasach pochodnych? class …

6
Czy jest jakaś różnica między interfejsami a klasami abstrakcyjnymi, które mają tylko metody abstrakcyjne?
Powiedzmy, że mamy klasę abstrakcyjną i niech ta klasa ma tylko abstrakcyjne metody. Czy ta klasa abstrakcyjna różni się od interfejsu, który ma tylko te same metody? Chcę wiedzieć, czy istnieją jakieś różnice zarówno filozoficzne, obiektywne, jak i podstawowe w implementacji języka programowania między klasą abstrakcyjną zawierającą tylko elementy abstrakcyjne …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.