Preguntas Programacion Orientada A Objetos
Preguntas Programacion Orientada A Objetos
Preguntas Programacion Orientada A Objetos
Inherits
2. Que es una Clase Base?
Es la clase que hereda todos los metodos, campos y propiedades de la clase base.
4. Como se puede extender una clase derivada?
Class Persona
Public Padre as Persona
Public Madre as Persona
Shared Function SonHermanos (ByVal p1 as Persona, ByVal p2 as Persona) _
As Bolean
Return (p1.Padre is p2.Padre) or (p1.Madre is p2.Madre)
End Function
End Class
Sub Hermanos ( )
Dim H1 as new Persona ( )
H1.nombre = Juan
H1.apellido = Diaz
Dim H2 as new Persona ( )
H1.nombre = Mario
H1.apellido = Diaz
Dim H3 as new Persona ( )
H1.nombre = Ana
H1.apellido = Diaz
H2.padre = H1
H3.padre = H1
7. Describa que es sobrescritura de una clase Base. Dar un ejemplo
Falso
14.Que es un finalizador?
Cuando un miembro de una clase derivada tiene el mismo nombre que otro
perteneciente a la clase base, obtendremos una advertencia de compilacin pero
podremos compilar igual. En este caso se dice que el metodo de la clase derivada
esta sombreando el metodo de la clase base.
17.Que es una clase abstracta? Justifique con cdigo
Es aquella clase que no se puede instanciar, que sirve para derivar nuevas clases. La
palabra clave es MustInherit.
18.Para que se puede utilizar notinheritable?
Para garantizar que nadie pueda ampliar una clase que ya se haya creado.
19.Cuales son los diferentes mbitos de las clases, mtodos y
variables?
Accedo a la interfaz asignando el objeto a una variable cuyo tipo ha sido declarado
justo despus de la interfaz. A traves de la clase que la implemente
29.Que es un delegado?
Ejemplo del uso de interfaces (tener en cuenta que estoy programando directo en
gMail... asi que puede haber errores de sintaxis)
Interface IVolador
public Sub volar()
public Function calcularAlturaDeVuelo() as Integer
End Interface
Class Avion
implements IVolador
public Sub volar()
'Hacer algo como darle gas a los motores
End Sub
public Function calcularAlturaDeVuelo() as Integer
dim altura as Integer = 1000
'hago algo propio de los aviones para calcular la altura de vuelo... que se yo... leo
el altmetro...
return altura
End Function
End Class
Class Pajaro
implements IVolador
public Sub volar()
'Hacer algo como aletear...
End Sub
public Function calcularAlturaDeVuelo() as Integer
dim altura as Integer = 25
'hago algo propio de los pajaros para calcular la altura de vuelo... que se yo...
mirar el sol y las estrellas
return altura
End Function
End Class
Y en el uso se puede hacer lo siguiente:
dim objetoVolador as IVolador
objetoVolador = new Avion()
objetoVolador.volar()
objetoVolador = new Pajaro()
objetoVolador.volar()
Tengo una variable del tipo IVolador (que es la interface) y guardo en ella una instancia
de una clase que implementa esa interfaz...
de esta manera a esa variable puedo invocarle cualquier metodo que este definido en la
interface sin que me importe a que clase en particular pertenece la instancia.
El ejemplo podra ser parte de un juego donde uno puede elejir jugar con un pjaro o
con un avin... y en cualquiera de los dos casos, sin importar con quien este jugando,
cuando presiono un botn quiero que el objeto vuele...
Desde el punto de vista del botn, a los efectos de hacer volar el objeto, lo nico que le
importa es que se le pueda invocar un mtodo que lo haga volar... y la responsabilidad
de volar depende de la implementacin de cada clase (Avin o Pjaro)