Saltar al contenido

¿Por qué la clase abstracta no puede ser sellada o estática?

Solución:

  1. static la clase no se puede marcar sealed porque esta hecho sealed por el compilador por defecto.

    Las clases estáticas están selladas y, por lo tanto, no se pueden heredar.

  2. static la clase no se puede marcar como abstract, porque sería inútil. abstract La clase tiene sentido cuando desea que todas las clases derivadas implementen la misma parte de la lógica. Pero porque static la clase no se puede derivar, no hay forma de que otra clase implemente estas brechas.

    No pueden heredar de ninguna clase excepto Object.

Ambas citas de clases estáticas y miembros de clases estáticas (Guía de programación de C #).

La especificación de C # es un poco más detallada al respecto:

10.1.1.3 Clases estáticas

A static la clase puede no incluir un sealed o abstract modificador. Tenga en cuenta, sin embargo, que desde un static no se puede instanciar o derivar de la clase, se comporta como si fuera a la vez sealed y abstract.

Puedes leer qué significa que la clase sea sealed o abstract:

No se puede crear una instancia de una clase abstracta directamente y es un error en tiempo de compilación utilizar el operador nuevo en una clase abstracta.

El modificador sellado se utiliza para evitar la derivación de una clase. Se produce un error en tiempo de compilación si se especifica una clase sellada como clase base de otra clase.

Actualizar

Y unas palabras sobre un artículo vinculado en la consulta que mencionaste (Diseño de clases estáticas). Ya está indicado en la respuesta aceptada de esa pregunta. Si lee con atención, puede ver que:

HACER declarar static clases como sealed, abstracty agregue un private constructor de instancias si su lenguaje de programación no tiene soporte incorporado para clases estáticas.

.NET (también C #) tiene soporte incorporado para clases estáticas, por lo que no tiene (y ni siquiera puede) hacer sus clases pseudoestático marcándolo ambos sealed y abstract.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *