Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 2
  • 371
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (2)

  • 8

Podam jeden przykład:

Buduję własną klasę stanowiącą repozytorium operacji na bazie danych. Klasa ta potencjalnie będzie stosowana w przetwarzaniu żądań web lub kodu usługi, zatem każdy narzut wydajnościowy wpłynie negatywnie na całe rozwiązanie. Zastosowanie dziedziczenia serwuje nam taki narzut.

Gdybym potrzebował dołożyć jakąś dodatkową funkcjonalność do klasy, mógłbym zechcieć to wykonać przez zastosowanie dziedziczenia, ze względu na wygodę użycia.

Zatem ograniczam taką możliwość jwp - dzięki temu kompilator "przypomni" o tym, nawet gdy osobiście zapomnę o pierwotnych założeniach.

Widzę także inne przykłady, ale może ktoś inny się wypowie tutaj. :)

Pozdrawiam,

Dariusz Popis

  • Odpowiedział
  • @ | 16.06.2014
  • TRENER ALTKOM AKADEMII
  • 4

Hierarchia dziedziczenia może nie mieć końca, tj. klasa A może być dziedziczona przez klasę B, klasa B może być dziedziczona przez klasę C itd.

class A{
...
}

class B:A{
...
}

class C:B{
...
}


Jeśli programista jest już przekonany, że klasa jest wierzchołkiem w hierarchii dziedziczenia bądź gdy wiemy, że używanie klasy jako bazowej może rodzić problemy - nieczytelność - lub gdy po prostu nie chcemy, aby drugi programista wykorzystał naszą klasę jako bazową, używamy słowa kluczowego sealed:

class A{
...
}

class B:A{
...
}

class C:B{
...
}

sealed class D:C{
...
}


Każda próba dziedziczenia po klasie z przedrostkiem sealed zakończy się błędem.

  • Odpowiedział
  • @ | 17.06.2014
  • TRENER ALTKOM AKADEMII