Possiamo dire che Apple eredita dalle classi Fruit e Seed?

-2

Dato tre classi di mela, frutta e seme;

La mela è una specie di frutto e contiene seme. Con la conoscenza di Apple Class utilizza direttamente o indirettamente le proprietà di Fruit and Seed. Possiamo dire che Apple è ereditata da Fruit and Seed?

    
posta Wuzzu 30.05.2018 - 20:01
fonte

2 risposte

8

Questo sarebbe un modo per rappresentare la relazione, ma suona quasi come un caso classico per la composizione sull'ereditarietà. Dalla sola descrizione, Apple potrebbe essere un frutto che contiene un seme.

Tuttavia, c'è solo così tanto che puoi dire dai nomi delle classi da solo. L'architettura del programma basata sulla relazione del mondo reale dei concetti coinvolti viene spesso utilizzata come esempio, ma in pratica il codice dovrebbe essere progettato in base a come verrà utilizzato. Qualcosa dovrebbe essere derivato quando è desiderabile essere in grado di utilizzare le istanze di esso in modo intercambiabile con il genitore, non solo perché i concetti sono IRL tassonomicamente correlati.

    
risposta data 30.05.2018 - 20:18
fonte
1

Can we say Apple is inherited from Fruit and Seed?

Suggerirei di considerare esempi migliori se si cerca di capire i concetti di ereditarietà o composizione. Se li comprendi, comprendi anche che Apple non può essere una classe in primo luogo. Sì, è "un-un" frutto ma tecnicamente vorresti solo creare un'istanza di frutta e nominarla come mela. Quindi la classe di cui hai bisogno è Fruit e non Apple , a meno che tu non sia convinto che Apple possa realmente avere un modulo specializzato che non può essere astratto in Fruit .

class Fruit 
{
   string Name;
   string Color;
   bool Seedless;
   ...
}

E vari frutti:

var apple = new Fruit { Name = "Apple", Seedless = false }
var grape = new Fruit { Name = "Grape", Seedless = true }

È proprio come se definissi una classe Person e lavori con wuzzu e nikhil istanze di esso se volessi fare riferimento a entrambi.

Se non sei convinto di avere solo un Fruit , puoi considerare ulteriormente la definizione di forme specializzate di Fruit in base alle categorie di frutta. Dire,

class Berry : Fruit // ex: grape, banana
class Pome : Fruit // ex: apple, pear
// and so on.
    
risposta data 30.05.2018 - 21:51
fonte

Leggi altre domande sui tag