Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duda con ejercicio 3 del midterm #545

Open
5 tasks done
sbarriag opened this issue Dec 14, 2023 · 2 comments
Open
5 tasks done

Duda con ejercicio 3 del midterm #545

sbarriag opened this issue Dec 14, 2023 · 2 comments
Assignees
Labels
Contenidos Dudas sobre contenidos

Comments

@sbarriag
Copy link

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Hola, estaba revisando el midterm por mi cuenta puesto que no pude ir a la ayudantía donde lo revisaron y me queda una duda con la respuesta de la pregunta 3
image
Según el solucionario la respuesta correcta es la D)
Pero tengo una duda en la afirmación "Cuando una clase hija hace overriding de un método, ya no se puede acceder a la
definición de dicho método de la clase padre"
Yo entiendo que esto se refiere a que si una clase hija hace overriding de un método que heredó de la clase padre, ya no se puede llamar al metodo de la clase padre, en la misma clase padre, lo cual probando, no ocurre, adjunto un ejemplo que hice
image
El output es el siguiente:
image
Se sigue pudiendo acceder al método de la clase padre, por lo que no se si yo hice algo que no tenía que ver o efectivamente está mal la respuesta

Muchas gracias

@sbarriag sbarriag added the Contenidos Dudas sobre contenidos label Dec 14, 2023
@mskdancers mskdancers self-assigned this Dec 14, 2023
@mskdancers
Copy link

Hola! La afirmación II indica que el método original de la clase padre no se puede acceder al método original, sin especificar desde dónde. Es por esto que la afirmación es falsa, ya que como tu bien mostraste, una instancia de la clase padre todavía puede llamar al método original, e incluso lo podrías hacer desde la clase hija:

class Padre:

  def __init__(self, nombre):
    self.nombre = nombre

  def saludar(self):
    print(f"Hola soy padre {self.nombre}")

class Hijo(Padre):

  def saludar(self):
    print(f"Hola soy hijo {self.nombre}")

padre = Padre("juan")
hijo = Hijo("juanito")

padre.saludar()
hijo.saludar()
Padre.saludar(hijo)

Es por esto que la afirmación II es incorrecta, y la alternativa correcta no incluye la afirmación II. Saludos, y mucho éxito hoy!

@sbarriag
Copy link
Author

Ahh perfecto entiendo entonces si hago overriding como en tu ejemplo en saludar, si llamo a saludar en hijo no podré obtener el resultado por decirlo así del método de la clase padre y por eso es falsa

Muchas gracias

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Contenidos Dudas sobre contenidos
Projects
None yet
Development

No branches or pull requests

2 participants