PGO Dziedziczenie Michail Mokkas.

Slides:



Advertisements
Podobne prezentacje
Projektowanie Aplikacji Komputerowych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Programowanie obiektowe
Klasy abstrakcyjne i interfejsy
Programowanie obiektowe PO PO - LAB 2 Wojciech Pieprzyca.
Programowanie obiektowe
Klasy i obiekty.
Wzorce.
Static, const, volatile.
Generics w .NET 2.0 Łukasz Rzeszot.
Sposoby implementacji asocjacji
Sposoby obejścia dziedziczenia
Implementacja ekstensji klasy
Mapowanie dziedziczenia z UML do Java
Programowanie Obiektowe w Javie (c.d.)
Programowanie obiektowe w Javie
OOP - programowanie zorientowane obiektowo w VB.NET
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Obiektowe metody projektowania systemów
Mapowanie różnych typów dziedziczenia do Javy
Dziedziczenie i jego rodzaje
C++ wykład 2 ( ) Klasy i obiekty.
Programowanie zorientowane obiektowo 1 Programowanie zorientowane obiektowo (object-oriented programming) jest to metodologia programowania bazująca na.
Mechanizmy dziedziczenia
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład II
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Programowanie obiektowe III rok EiT
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
WPROWADZENIE W ŚWIAT OBIEKTÓW
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
PWSZ Gniezno // codefly 2009
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Programowanie w języku C++
Kurs języka C++ – wykład 5 ( )
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram klas Kluczowymi elementami są: klasy (class)
Kurs języka C++ – wykład 4 ( )
Programowanie Zaawansowane
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Waldemar Bartyna Pytania egzaminacyjne 1.
Programowanie Obiektowe – Wykład 6
Typy wyliczeniowe, kolekcje
Kurs języka C++ – wykład 3 ( )
Wątki, programowanie współbieżne
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
(c) Krzysztof Barteczko 2014
Programowanie Obiektowe – Wykład 2
Wprowadzenie do programowania obiektowego
PGO Interfejsy Michail Mokkas.
Założenia projektowe Javy
PGO - Projektowanie i implementacja pierwszych klas
BYDGOSKI FESTIWAL NAUKI
PGO Przeciążanie metod i konstruktorów
PGO Porównywanie obiektów
Zapis prezentacji:

PGO Dziedziczenie Michail Mokkas

Spis treści Czym jest dziedziczenie? Co dziedziczą klasy? Dziedziczenie w Javie Przesłanianie metod Przykład dziedziczenia Klasy i metody abstrakcyjne Polimorfizm Przykład polimorfizmu Zadania

Czym jest dziedziczenie? Różne typy obiektów nieraz mają podobne cechy. np. samochody i rowery mają koła, kierownicę, biegi, itp. Prócz cech wspólnych, mogą dysponować takżę innymi cechami (niewspólnymi). W programowaniu obiektowym dziedziczenie służy do przekazywania cech wspólnych innym klasom bez konieczności ich przepisywania.

Co dziedziczą klasy? Klasa dziedziczy: Klasa nie dziedziczy: atrybuty metody klasy zagnieżdżone Klasa nie dziedziczy: konstruktora (podklasa może wywołać konstruktor nadklasy)

Dziedziczenie w Javie Wszystkie klasy w Javie dziedziczą od klasy Object Java umożliwia wielodziedziczenie typów – zdolność klasy do implementowania więcej niż jednego interfejsu Java nie umożliwia: wielodziedziczenia stanu – zdolność klasy do dziedziczenia atrybutów z więcej niż jednej klasy wielodziedziczenie implementacji - zdolnośc klasy do dziedziczenia definicji metod z więcej niż jednej klasy źródło ilustracji: https://docs.oracle.com/javase/tutorial/figures/java/classes-object.gif

Przesłanianie metod Metoda w klasie nadrzędnej, która ma taką samą nazwę, ilość parametrów, i typ jest możliwa do przesłonięcia w klasie podrzędnej. Mechanizm ten wykorzystywany jest do zmiany zachowania metody z klasy nadrzędnej w klasie podrzędnej. Przypomnienie: toString() Użycie adnotacji @Override jeżeli kompilator zauważy, że metoda, którą chcemy przesłonić, nie istnieje w żadnej z klas nadrzędnych to wygeneruje błąd

Przykład dziedziczenia

Przykład dziedziczenia kont. 1

Rezultat Konsola:

Klasy i metody abstrakcyjne Słowo kluczowe abstract: dla metody oznacza, że nie ma implementacji (ciała). Klasy podrzędne muszą dostarczać implementację. abstract void display(String str); dla klasy, że nie może być instancjowana (nie możemy tworzyć jej obiektów). public abstract class Person{ //atrybuty //metody //metody abstrakcyjne }

Polimorfizm Z gr. : πολύς (wiele) + μορφή (kształt/postać) = wielopostaciowość Jest to mechanizm, który umożliwia wykorzystanie pewnego zachowania dla potencjalnie wielu klas implementujących to zachowanie (metodę). Zdolność obiektów jakiegoś typu na korzystanie z tego samego interfejsu, lecz innej jego implementacji.

Przykład polimorfizmu

Rezultat Konsola:

Zadanie D1 Stwórz klasy Pracownik, Programista i Administrator Klasa Pracownik powinna być klasą abstrakcyjną. Zarówno programista jak i administrator powinni posiadać pola: ID pracownika imię nazwisko Dodatkowo programista powininen posiadać pole: lista języków programowania (tablica) A administrator powininen posiadać pole: lista systemów pod opieką (tablica) Użyj dziedziczenia.

Zadanie D2 Przerób poniższy diagram klas (UML Class Diagram) na kod.

Zadanie D3 Stwórz klasy Vehicle, Car i Racingcar. Korzystając z dziedziczenia oraz przesłonięcia napisz metodę display_typeOfVehicle(); Tak, aby było możliwe wykonanie następującego kodu: Vehicle v = new Vehicle(); Car c = new Car(); Racingcar rc = new Racingcar(); v.display_typeOfVehicle(); c.display_typeOfVehicle(); rc.display_typeOfVehicle(); Rezultat (konsola): This is a vehicle. This is a car. This is a racing car.

Zadanie D4 Stwórz klasy Browser, Chrome, Firefox i Opera. Powinno być możliwe wykonanie następującego kodu: Browser chrome = new Chrome(); Browser firefox = new Firefox(); Browser opera = new Opera(); chrome.info(); firefox.info(); opera.info(); Rezultat (konsola): To jest Chrome. To jest Firefox. To jest Opera. Użyj polimorfizmu.