programowanie obiektowe 04

background image

Dziedziczen

ie

background image

Przegląd zagadnień

Istota dziedziczenia
Dziedziczenie klas
Przesłanianie
Klasy zamknięte
Zagnieżdżanie klas
Podsumowanie
Pytania sprawdzające
Laboratorium

background image

Istota dziedziczenia

Dziedziczenie umożliwia przejęcie

przez klasę

struktury innej klasy
Klasa bazowa – nadrzędna
Klasa pochodna – dziedziczy i

rozbudowuje strukturę klasy bazowej
Hierarchia klas

background image

Dziedziczenie klas (1)

Kod C#

Osoba

+ Nazwisko : string

+ Pesel : int
+ Przedstaw()

Student

+ NumerIndeksu :

int

class Osoba
{

public string Nazwisko;
public int Pesel;
public void Przedstaw()
{

Console.WriteLine(Nazwisko);

}

}

class Student

: Osoba

{

public int NumerIndeksu;

}

background image

Dziedziczenie klas (2)

Kod C#

Osoba

+ Nazwisko : string

+ Pesel : int
+ Przedstaw()

Student

+ NumerIndeksu :

int

Student Wieczny = new Student();

Wieczny.NumerIndeksu = 1000;

Wieczny.Nazwisko = "Smith";
Wieczny.Pesel = 83133200000;

Wieczny.Przedstaw();

background image

Dziedziczenie klas (3)

Modyfikatory dostępu

class Bilet
{

protected

double CenaNetto = 12.00;

private

double Vat = 0.22;

public void PodajCene()
{

double c = CenaNetto;
c += c * Vat;
Console.WriteLine(c.ToString());

}

}

class BiletUlgowy

: Bilet

{

public BiletUlgowy(double znizka)
{

CenaNetto

*= znizka;

Vat = 0.07;

}

}

Bilet

# CenaNetto :

double

- Vat : double

+ PodajCene()

BiletUlgowy

+ <<constructor>>

BiletUlgowy(dou
ble)

background image

Dziedziczenie klas (4)

Modyfikatory dostępu

Bilet b = new Bilet();
b.PodajCene();

b.CenaNetto = 5.00;
b.Vat = 0.07;

BiletUlgowy u = new BiletUlgowy(0.50);
u.PodajCene();

u.CenaNetto = 2.00;
u.Vat = 0.00;

Bilet

# CenaNetto :

double

- Vat : double

+ PodajCene()

BiletUlgowy

+ <<constructor>>

BiletUlgowy(dou
ble)

background image

Przesłanianie

Przesłanianie metody

Bilet

# CenaNetto :

double

- Vat : double

+ PodajCene()

BiletUlgowy

+ <<constructor>>

BiletUlgowy(dou
ble)

+ PodajCene()

class BiletUlgowy : Bilet
{

public

new

void PodajCene

{

base.

PodajCene();

Console.WriteLine(" - ulgowy");

}

}

background image

Klasy zamknięte

Klasy zamknięte (sealed) nie mogą być

dziedziczone

sealed

class CzarnaSkrzynka

{

public ...
private ...

}

class Skrzynka : CzarnaSkrzynka
{

}

background image

Zagnieżdżanie klas

Klasa może zawierać definicje

wewnętrznych klas

Pojazd

- S : Silnik

Silnik

+ Moc : int

class Pojazd
{

class Silnik
{

public int Moc;

}
private Silnik S;

}

Pojazd

Silnik

+ Moc : int

background image

Podsumowanie

Dziedziczenie pozwala na przejęcie zmiennych

składowych i metod klasy bazowej przez klasę

pochodną
W definicji klasy pochodnej klasę bazową

wskazujemy po dwukropku
Dostęp do składowych klasy bazowej określa

się modyfikatorami dostępu (public,

protected, private)
W klasie pochodnej można przesłonić metodę

klasy bazowej za pomocą słowa new
Aby uniemożliwić dziedziczenie z danej klasy,

przed jej definicją umieszcza się słowo sealed
Klasa może zawierać definicje zagnieżdżonej

klasy

background image

Pytania sprawdzające

Czym jest hierarchia klas?
Jak na dziedziczenie wpływają

modyfikatory dostępu public,

protected i private?
Na czym polega przesłanianie?
Jak zabezpieczyć klasę przed jej

dziedziczeniem?
Porównaj obiekt składowy klasy i

zagnieżdżoną klasę wewnętrzną

background image

Laboratorium


Document Outline


Wyszukiwarka

Podobne podstrony:
Podstawy Programowania 04 Programowanie Obiektowe
Programowanie obiektowe(ćw) 1
Zadanie projekt przychodnia lekarska, Programowanie obiektowe
Programowanie obiektowe w PHP4 i PHP5 11 2005
Programowanie Obiektowe ZadTest Nieznany
Egzamin Programowanie Obiektowe Głowacki, Programowanie Obiektowe
Jezyk C Efektywne programowanie obiektowe cpefpo
Programowanie Obiektowe Ćwiczenia 5
Programowanie obiektowe(cw) 2 i Nieznany
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
Praktyczne programowanie, R 5c-04, Szablon dla tlumaczy
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
przeciazanie metod i operatorow, Programowanie obiektowe
projekt06, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
projekt07, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek

więcej podobnych podstron