Definiowanie hermetyzacji, dziedziczenia i polimorfizmu

projektowanie obiektowe w C++ Z Kristoffer Hebert

czym są enkapsulacja, dziedziczenie i polimorfizm?

enkapsulacja
klasa w projektowaniu obiektowym jest kontenerem dla danych i metod. Klasy wykorzystują enkapsulację do zarządzania dostępem do atrybutów, takich jak metody i dane, zawartych w sobie. W języku C++, enkapsulacja w klasach jest osiągana z atrybutami takimi jak: public, private, protected i static. Atrybuty klasy publicznej są dostępne wszędzie. Atrybuty klasy prywatnej są dostępne tylko dla metod klasowych wewnątrz siebie. Chronione atrybuty są dostępne dla siebie i klas potomnych siebie. Atrybuty statyczne są dostępne tylko dla klasy nadrzędnej, ale nie dla klasy zbudowanej.

dziedziczenie
dziedziczenie w projektowaniu obiektowym opisuje relacje między klasami nadrzędnymi, gdy rozszerzają One klasy potomne. Extend oznacza, że jedna klasa nadpisuje atrybuty lub dziedziczy atrybuty innej klasy. W podanym przykładzie kodu widać, że Klasa podrzędna dziedziczy każdy atrybut klasy nadrzędnej. Klasa potomna nadpisuje wartość firstName w wywołaniu konstruktora. Tak się nazywa Tom Sawyer i Suzy Sawyer.

przykład kodu dziedziczenia klas

polimorfizm
polimorfizm opisuje relację klasy jeden do wielu w projektowaniu obiektowym. Klasa nadrzędna może mieć wiele klas potomnych, które dziedziczą i nadpisują właściwości. Klasa transportu ma dwie klasy, które ją rozszerzają, samolot i Żaglowiec, nadając jej chronione atrybuty i metodę showDetails.

Klucze do zapamiętania

klasy są kontenerami, które mają atrybuty, nazywane danymi i metodami. Klasy używają enkapsulacji do zarządzania dostępem do tych atrybutów. W C++ atrybutami klasy można zarządzać za pomocą prywatnych, statycznych, publicznych, chronionych modyfikatorów atrybutów klasy. Klasy dziedziczą atrybuty klas, które rozszerzają. Dodatkowo klasy mogą nadpisywać atrybuty klas, które rozszerzają. Klasy nadrzędne mogą mieć wiele klas podrzędnych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

More: