programowanie obiektowe 06

background image

Interfejsy.

Polimorfiz

m

background image

Przegląd zagadnień

Interfejsy
Polimorfizm obiektów
Metody polimorficzne
Polimorfizm parametryczny
Podsumowanie
Pytania sprawdzające
Laboratorium

background image

Interfejsy (1)

Interfejsy są „w pełni abstrakcyjnymi

klasami”
Interfejs zawiera deklaracje metod,

które musi realizować klasa

implementująca interfejs

interface

Jadalny

{

void Jedz();

}

class Chleb

: Jadalny

{

public void Jedz()
{
Console.WriteLine("zjedzono chleb");
}

}

<<interface>

>

Jadalny

+ Jedz()

Chleb

+ Jedz()

background image

Gruszka g = new Gruszka();
g.Jedz();
Cytryna c = new Cytryna();
c.Jedz();

abstract class Owoc

: Jadalny

{

protected string Smak;
public void Jedz()
{

Console.Write(ToString());
Console.Write(" ma smak ");
Console.WriteLine(Smak);

}

}
class Gruszka

: Owoc

{

public Gruszka()
{ Smak = "slodki";

}

}
class Cytryna

: Owoc

{

public Cytryna()
{ Smak = "kwasny";

}

}

Interfejsy (2)

<<interface>

>

Jadalny

+ Jedz()

Gruszka

+

<<construc
tor>>
Gruszka()

Owoc

# Smak :

string

+ Jedz()

Cytryna

+

<<construc
tor>>
Cytryna()

background image

Gruszka g = new Gruszka();
Cytryna c = new Cytryna();

Konsument k = new Konsument();

k.JedzCokolwiek(g);
k.JedzOwoc(c);

class Konsument
{

public void JedzCokolwiek(

Jadalny

j)

{

j.Jedz();

}

public void JedzOwoc(

Owoc

o)

{

o.Jedz();

}

}

Interfejsy (3)

<<interface>

>

Jadalny

+ Jedz()

Gruszka

+

<<construc
tor>>
Gruszka()

Owoc

# Smak :

string

+ Jedz()

Cytryna

+

<<construc
tor>>
Cytryna()

Konsument

+

JedzCokolwiek(J
adalny)

+ JedzOwoc(Owoc)

background image

Polimorfizm (1)

Obiekt może występować jako

instancja klasy

lub jej klasy bazowej
Metoda abstrakcyjna może mieć różną

funkcjonalność

w zależności od implementacji w klasie

pochodnej

(metoda polimorficzna)
Metoda może mieć różną fukcjonalność

w zależności od zestawu parametrów

(polimorfizm parametryczny)

background image

Polimorfizm (2)

Polimorfizm obiektu

<<interface>

>

Jadalny

+ Jedz()

Gruszka

+

<<construc
tor>>
Gruszka()

Owoc

# Smak :

string

+ Jedz()

Cytryna

+

<<construc
tor>>
Cytryna()

Chleb

+ Jedz()

Chleb ch = new Chleb();
Gruszka g = new Gruszka();
Cytryna c = new Cytryna();

Konsument k = new Konsument();

k.JedzCokolwiek(ch);
k.JedzCokolwiek(g);

Konsument

+

JedzCokolwiek(J
adalny)

+ JedzOwoc(Owoc)

background image

Metody polimorficzne

Polimorfizm metody

<<interface>

>

Jadalny

+ Jedz()

Gruszka

+

<<construc
tor>>
Gruszka()

Owoc

# Smak :

string

+ Jedz()

Cytryna

+

<<construc
tor>>
Cytryna()

Chleb

+ Jedz()

Chleb ch = new Chleb();
Gruszka g = new Gruszka();
Cytryna c = new Cytryna();

ch.Jedz();
g.Jedz();
c.Jedz();

background image

Polimorfizm parametryczny

Polimorfizm parametryczny metody

class Obywatel
{

private string Wzrost;
public void PodajWzrost(double m)
{

int cm = (int) m;
PodajWzrost(cm);

}
public void PodajWzrost(int cm)
{

if (cm > 160)

Wzrost = "wysoki";

else

Wzrost = "niski";

}
public void PodajWzrost(string opis)
{

Wzrost = opis;

}

}

background image

Podsumowanie

Interfejs zawiera tylko deklaracje metod
Klasa, która implementuje interfejs, musi

zawierać wszystkie metody interfejsu
Każdy obiekt w języku C# ma metodę

ToString
Obiekt należy do klasy, którą implementuje,

oraz do wszystkich jej klas bazowych
Metoda klasy może mieć różne

funkcjonalności

w zależności od klasy pochodnej, w której

została przeciążona
Metoda może mieć różne funkcjonalności w

zależności od zestawu parametrów

background image

Pytania sprawdzające

Czym jest intefejs?
Jak zachowuje się obiekt

polimorficzny?
Czym są metody polimorficzne?
Na czym polega polimorfizm

parametryczny?

background image

Laboratorium


Document Outline


Wyszukiwarka

Podobne podstrony:
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
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
ET 2 mgr program 05 06, ►Studia, Semestr 3, Ekektrotechnika wykład
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
Programowanie Obiektowe Cz2, Dziedziczenie proste

więcej podobnych podstron