Lo importante en este desafío es aplicar una de las características de la programación orientada a objetos. ¿Sabrías decir cuál, y entonces descubrir la solución correcta?
Si quisiéramos ejecutar el código del ejemplo, deberíamos instanciar el objeto desde dentro de algún método en una clase. Además, para acceder a los campos de ese objeto, deberíamos agregar “getters” y “setters” (o bien hacer que los campos tengan el modificador de acceso “public” en lugar de “private”).
Click aquí para desplegar la solución. 👈
✅ La respuesta correcta es la c: "r, g, b, tonalidad, saturacion, luminosidad".
✏️ Explicación: La clase `ColorExtendido` hereda de `Color` y, por ende, hereda todos sus atributos. El modificador de visibilidad (en este caso, "private") no altera esta característica de la herencia (los atributos podrían tener cualquier modificador; la clase hija heredará los atributos de la clase padre).
Desafío C# 👇
Click aquí para una versión accesible de la infografía (apta para lectores electrónicos)
Desafío C#
¿Qué atributos contendrá el objeto ‘ce’ instanciado?
class Color
{
private int r, g, b;
}
class ColorExtendido : Color
{
private int tonalidad, saturacion, luminosidad;
}
// Instanciar objeto:
ColorExtendido ce = new ColorExtendido();
Opciones:
a) tonalidad, saturacion, luminosidad
b) r, g, b
c) r, g, b, tonalidad, saturacion, luminosidad
d) r, g, b si el objeto se crea en memoria stack; tonalidad, saturacion, luminosidad si se crea en memoria heap.