Page 1 of 1

Κυκλική κληρονομικότητα τάξεων

Posted: Sun May 18, 2008 8:31 pm
by madMax
Καλησπέρα,
Δεν έω ιδέα τι είναι η κυκλική κληρονομικότητα.

1)
class A
class B extends A, C
class C extends A

2)
class A
class B extends A
class C extends A
class D extends B
class E extends C, B

Στα 1,2 θα μπορούσε να έχουμε κυκλική Κληρονομικότητα ?
αλλά απο τη γραμματική της η γλώσσα δεν επιτρέπει "class B extends A,C" αλλά μόνο μια τάξη.

:?:

Re: Κυκλική κληρονομικότητα τάξεων

Posted: Sun May 18, 2008 8:46 pm
by mikem4600
Κυκλική κληρονομικότητα έχουμε όταν το κατευθυνόμενο γράφημα "συγγένειας" των τάξεων έχει κύκλο.

Στις περιπτώσεις που αναφέρεις αυτό δεν ισχύει.

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

class A extends C
class B extends A
class C extends B

Όσον αφορά το αν μία τάξη μπορεί να κληρονομεί πολλές τάξεις, αυτό απαγορεύεται σε γλώσσες όπως η Java και επιτρέπεται σε άλλες, όπως η C++. Ακόμα και στην Java όμως επιτρέπεται η πολλαπλή κληρονομικότητα των interfaces.

Re: Κυκλική κληρονομικότητα τάξεων

Posted: Sun May 18, 2008 8:48 pm
by The Punisher
Αν θεωρήσεις έναν κατευθυνόμενο γράφο με κόμβους τις τάξεις και βέλη από το παιδί στον πατέρα, κυκλική κληρονομικότητα είναι να έχει κύκλο ο γράφος. Τώρα εσύ έχει και πολλαπλή κληρονομικότητα στο παράδειγμά σου. Αυτό γενικά από τις managed γλώσσες δεν επιτρέπεται

------
αυτό θα πει συγχρονισμός mike ;)