Existe-t-il une classe à implémenter dans une classe statique? veux dire:
static class ABC : Anyclass
Existe-t-il une classe qui peut être héritée à la fois en classe scellée et en classe statique?
veux dire:
static class ABC : AClass {}
Et
sealed class ABC : AClass {}
Puis-je avoir tort dans une certaine mesure?
Cela peut vous aider:
+--------------+---+-------------------------+------------------+---------------------+
| Class Type | | Can inherit from others | Can be inherited | Can be instantiated |
|--------------|---|-------------------------+------------------+---------------------+
| normal | : | YES | YES | YES |
| abstract | : | YES | YES | NO |
| sealed | : | YES | NO | YES |
| static | : | NO | NO | NO |
+--------------+---+-------------------------+------------------+---------------------+
En mots simples
Classe statique
Une classe peut être déclarée statique, indiquant qu'elle ne contient que des membres statiques. Il n'est pas possible de créer des instances d'une classe statique à l'aide du nouveau mot-clé. Les classes statiques sont chargées automatiquement par le CLR (Common Language Runtime) .NET Framework lorsque le programme ou l'espace de noms contenant la classe est chargé.
classe scellée
Une classe scellée ne peut pas être utilisée comme classe de base. Les classes scellées sont principalement utilisées pour empêcher la dérivation. Comme elles ne peuvent jamais être utilisées en tant que classe de base, certaines optimisations d'exécution peuvent accélérer légèrement l'appel des membres de classes scellées.
Vous pouvez laisser une classe sealed
hériter d'une autre classe, mais vous ne pouvez pas hériter from a sealed
classe:
sealed class MySealedClass : BaseClass // is ok
class MyOtherClass : MySealedClass // won't compile
Une classe static
ne peut pas hériter d'autres classes.
La réponse simple est un la classe scellée ne peut pas être utilisée comme classe de base.
J'essaie de vous montrer que la classe scellée est une classe dérivée dans le code ci-dessous
public sealed class SealedClass : ClassBase
{
public override void Print()
{
base.Print();
}
}
et une autre fonctionnalité Sealed est uniquement accessible avec une instance de celle-ci (vous ne pouvez pas en hériter).
class Program
{
static void Main(string[] args)
{
SealedClass objSeald = new SealedClass();
objSeald.Name = "Blah blah balh";
objSeald.Print();
}
}
Vous pouvez simplement différencier les deux comme suit:
Sealed Class | Static Class
--------------------------|-------------------------
it can inherit From other | it cannot inherit From other
classes but cannot be | classes as well as cannot be
inherited | inherited
1 - Non, vous ne pouvez pas implémenter une classe statique.
2 - Non, vous ne pouvez pas hériter d'une classe statique ou scellée