Καλησπέρα,
Δεν έω ιδέα τι είναι η κυκλική κληρονομικότητα.
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" αλλά μόνο μια τάξη.
Κυκλική κληρονομικότητα τάξεων
- mikem4600
- Gbyte level
- Posts: 1363
- Joined: Fri Mar 12, 2004 2:00 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: A Galaxy Far, Far Away
- Contact:
Re: Κυκλική κληρονομικότητα τάξεων
Κυκλική κληρονομικότητα έχουμε όταν το κατευθυνόμενο γράφημα "συγγένειας" των τάξεων έχει κύκλο.
Στις περιπτώσεις που αναφέρεις αυτό δεν ισχύει.
Παράδειγμα κυκλικής κληρονομικότητας:
class A extends C
class B extends A
class C extends B
Όσον αφορά το αν μία τάξη μπορεί να κληρονομεί πολλές τάξεις, αυτό απαγορεύεται σε γλώσσες όπως η Java και επιτρέπεται σε άλλες, όπως η C++. Ακόμα και στην Java όμως επιτρέπεται η πολλαπλή κληρονομικότητα των interfaces.
Στις περιπτώσεις που αναφέρεις αυτό δεν ισχύει.
Παράδειγμα κυκλικής κληρονομικότητας:
class A extends C
class B extends A
class C extends B
Όσον αφορά το αν μία τάξη μπορεί να κληρονομεί πολλές τάξεις, αυτό απαγορεύεται σε γλώσσες όπως η Java και επιτρέπεται σε άλλες, όπως η C++. Ακόμα και στην Java όμως επιτρέπεται η πολλαπλή κληρονομικότητα των interfaces.
Last edited by mikem4600 on Sun May 18, 2008 8:48 pm, edited 1 time in total.
Autocracy hates questions. Anarchy hates answers.
-
- Venus Former Team Member
- Posts: 7561
- Joined: Thu Oct 27, 2005 1:43 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Boston, MA
Re: Κυκλική κληρονομικότητα τάξεων
Αν θεωρήσεις έναν κατευθυνόμενο γράφο με κόμβους τις τάξεις και βέλη από το παιδί στον πατέρα, κυκλική κληρονομικότητα είναι να έχει κύκλο ο γράφος. Τώρα εσύ έχει και πολλαπλή κληρονομικότητα στο παράδειγμά σου. Αυτό γενικά από τις managed γλώσσες δεν επιτρέπεται
------
αυτό θα πει συγχρονισμός mike
------
αυτό θα πει συγχρονισμός mike