Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Krzysztof Fediuk Szybkie przypomnienie Co to jest dziedziczenie? Dlaczego dziedziczenie jest fajne Przykłady Polimorfizm RTTI.

Podobne prezentacje


Prezentacja na temat: "Krzysztof Fediuk Szybkie przypomnienie Co to jest dziedziczenie? Dlaczego dziedziczenie jest fajne Przykłady Polimorfizm RTTI."— Zapis prezentacji:

1 Krzysztof Fediuk

2 Szybkie przypomnienie Co to jest dziedziczenie? Dlaczego dziedziczenie jest fajne Przykłady Polimorfizm RTTI

3 Jakie mamy encje? Co to znaczy, że metoda jest statyczna? Jak zadeklarować property? Czy metoda Console.Write() przechodzi do nowej linii? Z ilu interfejsów możemy dziedziczyć?

4 hPrinter = GetPrinter(); PrintText(hPrinter, "Hello world!"); hPrinter = GetPrinter(); hPrinter.PrintText(hPrinter,Hello World!);

5 Samochód Koło Drzwi Silnik Motocykl Koło Silnik class Samochod { Kolo kola [4]; Silnik silnik; Drzwi drzwi[2]; } Samochod[10] listaStartowa; Kolo[40] listaStartowa_kola; Silnik[10] listaStartowa_silnik; Drzwi[20] listaStartowa_drzwi; class Motocykl { Kolo kola [2]; Silnik silnik; } Motocykl[10] listaStartowaM; Samochod[10] listaStartowa; Kolo[40] listaStartowa_kola; Silnik[10] listaStartowa_silnik; Drzwi[20] listaStartowa_drzwi; Kolo[20] listaStartowaM_kola; Silnik[10] listaStartowaM_silnik;

6 Źródło: Od zera do gier kodera,

7 Dziedziczenie (ang. inheritance) to tworzenie nowej klasy na podstawie jednej lub kilku istniejących wcześniej klas bazowych Źródło: Od zera do gier kodera,

8 Umiejętność pomijania niepotrzebnych elementów i ustalania odpowiedniego poziomu szczegółowości

9 Enkapsulacja danych i zachowania Ponowne użycie kodu Ułatwia abstrahowanie 7 ± 2

10 class Animal // Zwierzę { float m_fMasa; int m_uWiek; public Animal() { m_uWiek = 0; } void Patrz(); void Oddychaj(); float Masa{ get { return m_fMasa; } set { m_fMasa = value; } } int Wiek{ get { return m_uWiek; } } };

11 class Fish : Animal // Ryba { void Plyn(); }; class Mammal : Animal // Ssak { void Biegnij(); }; class Bird : Animal // Ptak { void Lec(); };

12 class HomeDog : Mammal // Pies domowy { RACE m_Rasa; COLOR m_KolorSiersci; // metody void Aportuj(); void Szczekaj(); // propertisy RACE Rasa { get {return m_Rasa; } } COLOR KolorSiersci { get {return m_KolorSiersci; } } };

13 // klasa bazowa class ChessPiece { /* definicja */ }; // Figura szachowa // klasy pochodne class Pawn : ChessPiece { /*... */ }; // Pionek class Knight : ChessPiece { /*... */ }; // Skoczek class Bishop : ChessPiece { /*... */ }; // Goniec class Rook : ChessPiece { /*... */ }; // Wieża class Queen : ChessPiece { /*... */ }; // Hetman class King : ChessPiece { /*... */ }; // Król

14 Kwintesencja dziedziczenia Operowanie na typie bazowym A de facto na typie rzeczywistym

15 class Fish : Animal { void Oddychaj() // redefinicja metody wirtualnej { Console.WriteLine("Oddycham skrzelami...); } void Plyn(); }; class Mammal : Animal { void Oddychaj() // redefinicja metody wirtualnej { Console.WriteLine("Oddycham płucami...); } void Biegnij(); };

16 public class Document { public String Author { get; set; } public String Title { get; set; } public DateTime Date{ get; set; } } public class Program { public static void ShowDocument(Document doc) { Console.WriteLine("Author:" + doc.Author); Console.WriteLine("Title:" + doc.Title); Console.WriteLine("Date:" + doc.Date); }

17 RunTime Type Info Podstawa refleksji i meta-programowania Klasa Type


Pobierz ppt "Krzysztof Fediuk Szybkie przypomnienie Co to jest dziedziczenie? Dlaczego dziedziczenie jest fajne Przykłady Polimorfizm RTTI."

Podobne prezentacje


Reklamy Google