Προς το περιεχόμενο

Ποσο συχνα χρησιμοποιειτε την κληρονομικοτητα και τον πολυμορφισμο;


geo1st487

Προτεινόμενες αναρτήσεις

Δημοσ.

Και τι πας να βγάλεις με τέτοια ερώτηση;

Η θεωρεία του ΟΟP λέει να τα χρησιμοποιήσεις όπου μπορείς-υπάρχει ανάγκη...

Η πράξη, όπως και σε όλα τα πράγματα άλλωστε, λέει να το κάνεις οπότε μπορείς...

Άρα το θέμα είναι πάντα αν σε παίρνει να ακολουθήσεις την σωστή οδό...(χρόνος/ κόστος/ έλλειψη γνώσης πάνω σε OOP/ (συμπλήρωσε εσύ...)) κάτι που πάντα είναι υποκειμενικό για τον καθένα μας...

Δημοσ.
Και τι πας να βγάλεις με τέτοια ερώτηση;

Η θεωρεία του ΟΟP λέει να τα χρησιμοποιήσεις όπου μπορείς-υπάρχει ανάγκη...

Η πράξη, όπως και σε όλα τα πράγματα άλλωστε, λέει να το κάνεις οπότε μπορείς...

Άρα το θέμα είναι πάντα αν σε παίρνει να ακολουθήσεις την σωστή οδό...(χρόνος/ κόστος/ έλλειψη γνώσης πάνω σε OOP/ (συμπλήρωσε εσύ...)) κάτι που πάντα είναι υποκειμενικό για τον καθένα μας...

 

Σ Ω Σ Τ Ο Σ !

 

Θελω να πω ποσο συχνα υπαρχει αναγκη και μπορειτε να τα χρησιμοποιεισετε στις εφαρμογες που κανετε;

Δημοσ.
Ποσο συχνα χρησιμοποιειτε την κληρονομικοτητα και τον πολυμορφισμο στις εφαρμογες σας;

Πολύ συχνά, και έχει τύχει σε μια εφαρμογή να χρησιμοποιήσω και κληρονομικότητα πάνω των 2 επιπέδων.

 

Σχεδόν όλοι οι προγραμματιστές σε .NET χρησιμοποιούν την κληρονομικότητα, αλλά χωρίς να το ξέρουν.

Σας θυμίζει κάτι;

>Public Partial Class Default
     Inherits System.Web.UI.Page

...

Δημοσ.

 

Σχεδόν όλοι οι προγραμματιστές σε .NET χρησιμοποιούν την κληρονομικότητα, αλλά χωρίς να το ξέρουν.

Σας θυμίζει κάτι;

>Public Partial Class Default
     Inherits System.Web.UI.Page

...

Το καλυτερο παραδιγμα ειναι το πιο απλο

class foo{}

η

"struct fee{}"

Για .net λεω.

foo -> based Object

fee -> based ValueType -> based Object.

Δημοσ.

inheritance και polymorphysm σε classes ειναι βασικη ιδεα του oop.οποτε οταν προγραμματιζεις με oop λογικη τα χρησιμοποιεις συχνα

 

τωρα το ποσο συχνα εξαρταται απο τις αναγκες του καθενος, τις γνωσεις του και απο το ειδος της εφαρμογης που φτιαχνει

Δημοσ.
Το καλυτερο παραδιγμα ειναι το πιο απλο

class foo{}

η

"struct fee{}"

Για .net λεω.

foo -> based Object

fee -> based ValueType -> based Object.

 

Το παράδειγμα που έδωσα είναι ο κώδικας που υπάρχει σε όλα τα .aspx.vb αρχεία. Με το που φτιάχνεις μια σελίδα δημιουργείται το πρώτο επίπεδο κληρονομικότητας.

Δημοσ.

Το πρωτο ειναι η class. Για τη System.Web.UI.Page ειναι η τριτη (και στο παραδειγμα σου πας στη τεταρτη). Κανε ενα reflect για να δεις.

 

ΥΓ: Το Object ειναι class.

Τσεκαρε αυτο

 

>[color="#0000ff"][b]using[/b][/color] System;

[color="#0000ff"][b]namespace[/b][/color] ConsoleApplication1
{
   [color="#0000ff"][b]class[/b][/color] Program
   {
       [color="#0000ff"][b]static[/b][/color] [color="#0000ff"][b]void[/b][/color] Main([color="#8000ff"]string[/color][] args)
       {
           [color="#2b91af"]Console[/color].WriteLine([color="#a31515"]"Foo Class:"[/color]);
           Print([color="#0000ff"][b]typeof[/b][/color](Foo));
           [color="#2b91af"]Console[/color].WriteLine([color="#a31515"]"Fee Struct:"[/color]);
           Print([color="#0000ff"][b]typeof[/b][/color](Fee));
           [color="#2b91af"]Console[/color].WriteLine([color="#a31515"]"Anonymous Type:"[/color]);
           Print(
              (
              [color="#0000ff"][b]new[/b][/color]
              {
                  POV = [color="#0000ff"][b]new[/b][/color] { x = [color="#ff8000"]0[/color], y = [color="#ff8000"]1[/color], z = [color="#ff8000"]1[/color] }
              }
              ).GetType()
               );
           [color="#2b91af"]Console[/color].WriteLine([color="#a31515"]"Page Class:"[/color]);
           Print([color="#0000ff"][b]typeof[/b][/color](System.Web.UI.[color="#2b91af"]Page[/color]));
           [color="#2b91af"]Console[/color].Read();
       }
    
       [color="#0000ff"][b]static[/b][/color] [color="#0000ff"][b]void[/b][/color] Print([color="#2b91af"]Type[/color] type)
       {
           [color="#2b91af"]Type[/color] baseType = type.BaseType;
           [color="#2b91af"]Console[/color].WriteLine([color="#a31515"]"\t"[/color] + baseType.Name);
           [color="#0000ff"][b]if[/b][/color] (baseType.BaseType != [color="#0000ff"][b]null[/b][/color])
               Print(baseType);

       }
   }
   [color="#0000ff"][b]public[/b][/color] [color="#0000ff"][b]class[/b][/color] Foo { }
   [color="#0000ff"][b]public[/b][/color] [color="#0000ff"][b]struct[/b][/color] Fee { }
  
}

 

 

Output

>Foo Class:
       Object
Fee Struct:
       ValueType
       Object
Anonymous Type:
       Object
Page Class:
       TemplateControl
       Control
       Object

 

 

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...