Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Σχετικά έγγραφα
Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Αντικειµενοστραφής Προγραµµατισµός

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

Βασικά της γλώσσας JAVA

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Διδάσκων: Παναγιώτης Ανδρέου

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee

Wrapper Classes, Abstract Classes and Interfaces

Ειδικά Θέματα Προγραμματισμού

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

Κεφάλαιο V : Εργαστηριακές ασκήσεις που αφορούν δηµιουργία κλάσεων στη Java.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

Κλάσεις και Αντικείµενα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

(Διαφάνειες Νίκου Βιδάκη)

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Εισαγωγή στον Προγ/μό Η/Υ

2.1 Αντικειµενοστρεφής προγραµµατισµός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Σύνθεση και Κληρονομικότητα

Αντικειμενοστρεφής Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

Σύνθεση και Κληρονομικότητα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Διαδικτύου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

ΑΣΚΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειμενοστρεφής Προγραμματισμός


ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

Διδάσκων: Παναγιώτης Ανδρέου

Προγράμματα με δομή Κληρονομικότητας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Ειδικά Θέματα Προγραμματισμού

Προγραµµατισµός ΙΙ Java 2

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Κλάσεις. Τροποποιητές, Πακέτα, ιασυνδέσεις. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο2-Νο3

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες Μέθοδοι tostring και equals Αντικείμενα μέσα σε αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Transcript:

Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Μέσω της κληρονομικότητας μπορούμε να δημιουργήσουμε µια νέα τάξη (θυγατρική) προσδιορίζοντας µόνο τα σημεία εκείνα στα οποία αυτή διαφέρει από µια υπάρχουσα τάξη. class TestB extends TestA {.

Μέθοδοι επικάλυψης Όταν µια μέθοδος ορίζεται σε µια υποκλάση και στην υπερκλάση, χρησιμοποιείται η μέθοδος της υποκλάσης. Αυτό επιτρέπει σε µια υποκλάση να αλλάζει, να αντικαθιστά ή να καταργεί τελείως μέρος της συμπεριφοράς ή των ιδιοτήτων των υπερκλάσεων της. Η δημιουργία μιας τέτοιας μεθόδου σε µια υποκλάση, έτσι ώστε να αλλάξει η συμπεριφορά που κληρονομήθηκε από µια υπερκλάση ονομάζεται μέθοδος επικάλυψης (Overriding).

Η χρήση του this και του super Με τη λέξη this αναφερόμαστε σε μεταβλητές ή μεθόδους του τρέχοντος αντικειμένου µας. public class ΟνομαΚλασης { private int a; public μεθοδοςα( int a){ this.a = a;.

Η χρήση του this και του super Σε υποκλάσεις η λέξη this χρησιμοποιείται όταν θέλουμε να αναφερθούμε σε μεταβλητές και μεθόδους του τρέχοντος αντικειμένου µας.

Η χρήση του this και του super Η λέξη super χρησιμοποιείται όταν θέλουμε να αναφερθούμε σε μεταβλητές και μεθόδους της αμέσως προηγούμενης υπερκλάσης του αντικειμένου µας.

ΘΕΜΑΤΑ ΠΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΓΝΩΡΙΖΟΜΕ ΓΙΑ ΤΗΝ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΣΤΗΝ JAVA Αφού μία τάξη δηλωθεί ότι επεκτείνει την υπερτάξη της, κληρονομεί κάποια από τα μέλη της υπερτάξης της με τους εξής κανόνες: Αν η υπερτάξη έχει δηλώσει κάποια μέλη ως ιδιωτικά (private) τότε τα μέλη αυτά ναι μεν κληρονομούνται από την υποτάξη αλλά η πρόσβαση γίνεται έμμεσα μέσω μεθόδων τύπου public της υπερτάξης. Από την άλλη μεριά η υποτάξη μπορεί να αναφερθεί στα προστατευμένα (protected) μέλη της (που κληρονομούνται από την υπερτάξη) άμεσα χωρίς κανένα πρόβλημα. Τα δημόσια (public) μέλη της υπερτάξης είναι φυσικά προσπελάσιμα από όλους και από τις υποτάξεις.

ΠΑΡΑΔΕΙΓΜΑ - Μέρος 1ο Δημιουργούμε την τάξη Person public class Person { protected String name; private int age; public Person() { public void setname(string n) { name = n; public void setage(int a) { age = a; public String getname() { return name; public int getage() { return age; public String saywhoyouare() { return "Εμαι ο " +name+ " και είμαι " + age + " ετών.";

ΠΑΡΑΔΕΙΓΜΑ - Μέρος 2ο Δημιουργούμε την υποτάξη Student public class Student extends Person { private String fieldofstudy; public void setfield(string s) { fieldofstudy = s; public String getfield() { return fieldofstudy; public String saywhoyouare() { return "Είμαι o " + name + " και είμαι " + getage() + " ετών. " + "Σπουδάζω " + fieldofstudy;

ΠΑΡΑΔΕΙΓΜΑ - Μέρος 3ο Στην τάξη Main χρησιμοποιούμε αντικείμενα της τάξης Person και της υποτάξης Student. public class TestPesonAndStudent { public static void main(string[] args) { Person p = new Person(); Student s = new Student(); p.setname("γίώργος"); p.setage(33); s.setname("νίκος"); s.setage(22); s.setfield("πληροφορική"); System.out.println(p.sayWhoYouAre()); System.out.println(s.sayWhoYouAre());

Παράδειγμα 2 µε κλάση Δημιουργήστε µια κλάση αντικειμένων Student η οποία να περιγράφει φοιτητές. Ένας φοιτητής έχει το όνομα το επώνυμο και τον αριθμό μητρώου του. Η κλάση που θα δημιουργήσετε πρέπει να περιλαμβάνει µια μέθοδο κατασκευής και µια μέθοδο εκτύπωσης ενός αντικειμένου. Στη συνέχεια να δημιουργήσετε την κλάση JavaStudent η οποία να επεκτείνει την κλάση Student µε τον βαθμό κάθε φοιτητή στο μάθημα της Java. Η νέα κλάση πρέπει να περιλαμβάνει µια μέθοδο κατασκευής, και µια μέθοδο εκτύπωσης ενός αντικειμένου. Στη συνέχεια γράψτε ένα πρόγραμμα στο οποίο να δημιουργήσετε τέσσερα αντικείμενα της κλάσης JavaStudent. Εισάγετε κατάλληλα δεδομένα σε αυτά και εκτυπώστε τα.

Παράδειγμα 2 µε κλάση public class Student { protected String onoma, eponymo; protected int am; //Kataskevastis (Constructor) public Student (String onoma, String eponymo, int am){ this.onoma = onoma; this.eponymo = eponymo; this.am = am; //Methodos ektyposis public String tostring(){ String s = onoma + " " + eponymo + " AM: " + am; return s;

Παράδειγμα 2 µε κλάση public class JavaStudent extends Student{ private double vathmos; //vathmos sth Java //Kataskevastis (Constructor) public JavaStudent (String onoma, String eponymo, int am, double vathmos){ super(onoma, eponymo, am); this.vathmos = vathmos; public String tostring(){ return super.tostring() + " Vathmos: " + vathmos;

Παράδειγμα 2 µε κλάση public class TestJavaStudent { public static void main(string[] args) { JavaStudent sa = new JavaStudent("Ioannis", "Lappas", 3485, 6.5); JavaStudent sb = new JavaStudent("Nikolaos", "Nakoulas", 5208, 7.3); JavaStudent sc = new JavaStudent("Georgios", "Ioannou", 7505, 5.0); JavaStudent sd = new JavaStudent("Vasileios", "Ntobris", 2802, 5.5); System.out.println(sa); System.out.println(sb); System.out.println(sc); System.out.println(sd);

Παράδειγμα 2 µε κλάση Αποτέλεσμα εκτέλεσης: run: Ioannis Lappas AM: 3485 Vathmos: 6.5 Nikolaos Nakoulas AM: 5208 Vathmos: 7.3 Georgios Ioannou AM: 7505 Vathmos: 5.0 Vasileios Ntobris AM: 2802 Vathmos: 5.5 BUILD SUCCESSFUL (total time: 2 seconds)