¿Solo me pregunto si se heredan las variables privadas de nivel de clase? En C#¿Se heredan las variables privadas de nivel de clase?
Respuesta
Sí, pero no son accesibles, por lo que puede decir honestamente que no son heredados. Pero sí, realmente son
Depende del idioma, pero en general, no; solo están accesibles en la clase en la que están definidos.
Pero generalmente son parte de la instancia (incluso si el idioma impide el acceso). –
Se heredan, pero la palabra clave "privado" significa que solo la clase en la que se declararon puede acceder a ellos. Esto excluye subclases. Sin embargo, debido a que una instancia de una subclase contiene su propia superclase, todavía están allí. Simplemente no puedes verlos directamente.
Si está buscando un campo que solo la clase declarante y sus subclases puedan ver, puede usar la palabra clave "protected" en lugar de "private", y eso debería proporcionar la funcionalidad que está buscando.
Son, aunque no son accesibles directamente.
public class BaseClass
{
private const int _aNumber = 5;
public int ReturnANumber() { return _aNumber; }
}
public class DClass : BaseClass
{
public void SomeMethod()
{
// This is indirectly accessing a private implemented in the class
// this derives from, but existing inside this class.
int numbery = this.ReturnANumber();
}
}
public class Whatever
{
public void AMethod(DClass someDClass)
{
int thisIsNumberFive = someDClass.ReturnANumber();
}
}
Se heredan en un sentido. El espacio de memoria se les asigna y "existen" dentro de la instancia de la subclase. Sin embargo, la subclase no puede acceder a la variable en sí misma. (Si quiere que la subclase para acceder a la variable de clase base, utilice protected
en lugar de private
.)
Esto es necesario - los métodos de la clase base de necesidad de ser capaz de establecer la variable privada (o no habría ningún uso para ello). Esos métodos están disponibles también en una instancia de la subclase, y de hecho, la instancia de la subclase debe poder tratarse como una instancia de la clase base (requerida para satisfacer el Liskov substitution principle). Si las variables privadas no se heredaran, el comportamiento de los métodos de la clase base cambiaría o se rompería.
Sí, se heredan pero el compilador prohíbe el acceso a ellos. Aalas, todavía puedes conseguirlos -no recomendados- a través del reflejo o de tu agradable truco de AMethod().
Se heredan pero no son accesibles o solo se puede acceder a ellos en la clase donde se declaran. Puede acceder a ellos en la subclase de dos maneras
- declararlos protegida en lugar de privada
escribir un método público que devuelve el valor de esa variable privada
pero no hay manera de que usted directamente acceder a la variable privada en la subclase.
- 1. C#: (Estático) Variables de nivel de clase
- 2. variables privadas o protegidas?
- 3. C# para las variables miembro privadas
- 4. force get/set acceso de variables privadas para propiedades privadas
- 5. AS3: si las variables privadas tienen un _
- 6. Funciones privadas y variables ExtJs4?
- 7. simular variables privadas en Python
- 8. Variables privadas en prototipos heredados
- 9. objetos no heredan las funciones de prototipos
- 10. Eliminación de métodos específicos de la clase hija que se heredan de la clase padre
- 11. ¿Se heredan los destructores virtuales?
- 12. variables públicas frente a las variables privadas con descriptores de acceso
- 13. Espacios de nombre sin nombre vs variables privadas
- 14. métodos estáticos Java que acceden variables privadas
- 15. Variables privadas en .net 4.0 tareas
- 16. ¿Cuál es la manera Pythonic de usar variables privadas?
- 17. ¿Accediendo a variables de instancia privadas de parent de la clase hija?
- 18. ¿Las clases privadas se sellan en la compilación?
- 19. C Variables privadas Obtener y establecer métodos
- 20. Clases de casos que heredan de la clase abstracta
- 21. variables de ámbito Android nivel de aplicación
- 22. ¿Cómo crear variables privadas dentro de un espacio de nombres?
- 23. ¿Cómo se definen las variables de nivel de vista en ASP.NET MVC?
- 24. Las variables locales en las definiciones de clase/ámbito
- 25. variables de clase objetivo-c: ¿cuándo se llama a dealloc?
- 26. finalización de código para las variables miembro privadas/protegido al usar __get mágica()
- 27. variables de instancia de clase python y variables de clase
- 28. Variables privadas compartidas frente a variables locales/espacio de nombres ¿Contaminación frente a rendimiento?
- 29. Generics: heredan de una clase abstracta que implementa una interfaz
- 30. Acceso a variables privadas desde dentro de un cierre
¿En qué idioma? –
en C# perdón por eso –
posible duplicado de [¿Los miembros privados son heredados en C#?] (Http://stackoverflow.com/questions/2950820/are-private-members-inherited-in-c) –