Abstract
De Banane Atomic
Aller à la navigationAller à la recherche
Définition
Une classe abstraite possède au moins un membre abstrait, elle ne peut donc pas être instanciée.
A la différence d'une interface, elle peut contenir du code.
Code
interface IInterface { int MyProperty { get; set; } void MyMethod(); } // une classe doit être déclarée abstraite si elle possède au moins un membre abstrait // elle ne peut être instanciée abstract class AbstractClass : IInterface { // les membres abstrait, à la différence des membres virtuels, ne contiennent pas d'implémentation public abstract int MyProperty { get; set; } public abstract void MyMethod(); // à la différence de l'interface la classe abstraite peut avoir des champs, // des méthodes et des propriétés non-abstraites implémentées int _myField = 0; public void MyOtherMethod() { /* code */ } // constructeur, sert seulement à factoriser le code des constructeurs implémentant la classe abstraite protected AbstractClass(string argument) { MyProperty = argument; } } // la classe qui hérite d'une classe abstraite doit implémenter ses membres abstraits class MyClass : AbstractClass { public override int MyProperty { get { /* code */ } set { /* code */ } } public override void MyMethod() { /* code */ } public MyClass(string argument) : base(argument) { } } |