réponses spécifiques sont difficiles car ils dépendent vraiment des détails de votre espace de problème, mais en général vous pouvez utiliser les sous-classes de Car
si toutes sortes de Car
partagé certaines fonctionnalités. Par exemple:
public class Car {
public void Start() { }
}
Et alors vous pourriez avoir différents types de Car
:
public class Sedan : Car {
public void OpenAllFourDoors() { }
}
public class Coupe : Car {
public void OpenAllTwoDoors() { }
}
Vous ne devez généralement pas mettre la hiérarchie des classes dans son propre espace de noms, il y a d'autres ensembles d'orientation pour l'espace de noms définitions En règle générale, attendez que les espaces de noms prennent la forme de quelque chose comme CompanyName.ProductName.ModuleName ou quelque chose de similaire. Par la suite, lorsque vous avez besoin d'un tableau (ou, plus communément, d'une collection) de voitures, vous devez créer une collection de Car
. Lorsque vous récupérez une référence de cette collection, vous ne pouvez pas OpenAllFourDoors
ou OpenAllTwoDoors
car vous ne saurez pas quelle sous-classe de Car
vous travaillez.
(Toutes mes excuses pour C# syntaxe -centric)
Je ne peux pas garder une propriété « genre » au sein de chaque sous-classe (avec une valeur par défaut par la sous-classe) de savoir quelle sous-classe il est? .. et quelle est la différence entre une collection et un tableau? –
@Jeremy Rudd: Vous pouvez, mais c'est généralement une mauvaise forme. Tirez parti de l'envoi virtuel pour éliminer la propriété "kind", sinon vous rejetez l'une des principales motivations de la hiérarchie des classes. Par exemple, mettez 'OpenAllDoors()' sur la classe de base 'Car', puis laissez chaque implémentation déterminer comment ouvrir toutes les portes. –
Dans la plupart des langages OO que j'ai utilisés, un tableau est une construction de langage utilisée pour contenir une série d'objets. Une collection (dont il existe plusieurs sortes) est une structure de données plus formelle avec des caractéristiques de performance et des interfaces bien comprises. Par exemple, une liste liée est un type de collection. –