Φωτογραφία ιορδάνης ασλανίδης
interfaces
από ιορδάνης ασλανίδης - Saturday, 10 December 2011, 10:35 AM
 
Καλημέρα,

ομολογώ πως δεν έχω καταλάβει πλήρως την χρησιμότητα των interfaces και των inner κλάσεων (άλλωστε αν τα είχα καταλάβει από τώρα δεν θα είχα ανάγκη το σεμινάριο). Πέρα από αυτό, στη σελίδα 160 των σημειώσεων στα bullets που αναφέρουν τα σενάρια που θα μπορούσε να χειριστεί το interface Renderable, προσπαθώ να καταλάβω πως γίνεται μια κλάση και να επεκτείνει την κλάση βάσης Shape και ταυτόχρονα να υλοποιήσει το interface Renederable. Με κάποια εσωτερική κλάση ίσως??
 
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: interfaces
από Νικόλαος Πανάγος - Saturday, 10 December 2011, 3:06 PM
 
Γεια σου Ιορδάνη,

είναι φυσικό να μην καταλαβαίνετε στο 100% αυτά που διαβάζετε, όπως γράφω και στις σημειώσεις αλλά και στα διάφορα ποστ, πρόκειται για θεματάκια που είναι πιο προχωρημένα. Τα 2 αυτά κεφάλαια είναι όλο το 'ζουμί' του σεμιναρίου γι αυτό και πάντα δίνω τις 2 εβδομαδες αυτές για να μπορέσετε να τα διαβάσετε πολλές φορές χωρίς να υπάρχει πίεση χρόνου.

Στο προκείμενο τώρα, μία κλάση φυσικά μπορεί να επεκτείνει κάποια άλλη, κληρονομώντας έτσι τα χαρακτηριστικά και τη συμπεριφορά της μητρικής κλάσης και προσθέτοντας τα δικά της ανάλογα με την περίπτωση.

Ένα interface όπως γράφω και στις σημειώσεις περιγράφει μία συμπεριφορά. Αν θέλουμε η κλάση μας να υλοποιεί τη συμπεριφορά αυτή, την θέτουμε να υλοποιεί το εν λόγω interface. Θα μπορούσαμε κάλλιστα λοιπόν να θέσουμε την κλάση μας να κληρονομεί από την Shape και να υλοποιεί το Renderable, π.χ.

public class Square extends Shape implements Renderable { }

Αυτό θα είχε ως συνέπεια η Square να κληρονομήσει όλα τα στοιχεία της Shape και να πρέπει να υλοποιήσει την/τις αφηρημένες μεθόδους που ορίζονται στο Renderable ώστε να γίνει συμπαγής κλάση. Οι εσωτερικές κλάσεις δεν έχουν σχέση με αυτό και δεν εμπλέκονται στην όλη διαδικασία, μην μπερδεύεσαι.

Ελπίζω να σου έγινε περισσότερο κατανοητό, ξαναλέω πρόκειται για πιο προχωρημένες αρχές που θα δυσκολέψουν όλους όσους τα βλέπουν για πρώτη φορά, θα πρέπει να επιμείνετε και να τα διαβάσετε πολλές φορές μέχρι να 'δέσουν'.

ΝΠ

Φωτογραφία ιορδάνης ασλανίδης
Re: Απάντηση: interfaces
από ιορδάνης ασλανίδης - Saturday, 10 December 2011, 4:44 PM
 
οκ το έπιασα, με μία δήλωση μπορούμε να συνδυάσουμε και κλάση και interface

ευχαριστώ.