Dudas+Intercuatrimestral

R: Olvídate de ello. Debe ser así por otro motivo diferente que ya veremos más adelante. El hecho de definir un método como public o no, no depende del tipo de clase. En el examen no entran modificadores de acceso.
 * P: En la practica de herencia de calses abstractas e interfaces, porque todos los metodos en AreaProtegida son public, ¿por qué hereda de una clase abstracta o que? **

R: Perdona, una errata. Tal y como pone el enunciado, debería ser String visitar.
 * P: ¿Por qué en el método visitar pones public String visitar(String guia),(no enteindo porque pones String guia dentro del método) **

R: Por defecto, un número en coma flotante siempre es un double. Si asignas un double a un float se puede perder información, por lo que se debe hacer un cast explícito. float f = (float) 54.6; Como este código es muy engorroso y feo, Java permite utilizar el sufijo F o f, para indicar al compilador que ese número en coma flotante es realmente de tipo float: float f = 54.6F;
 * P: En la práctica de tipos si no pones F al lado de 54.6 da error de lost of precision, es porque los que tienen decimales siempre los ve como double o que? **

R//: Efectivamente. Antes, para asegurarte, deberías poner:// if(lista[2] instanceof MusicaVideo) ó if(lista[i] instanceof MusicaVideo)
 * P: MusicaVideo mv=(MusicaVideo) lista[2]; //lista[2] es el objeto tipo MusicaVideo s.o.p(m.getVideo); ¿Está bien?//**

R: Perfecto. Lo único, que deberías poner super.toString.
 * P: También tengo duda con el StringBuilder.**
 * En el tostring de la subclase ¿cómo hago referencia al de la subclase?**
 * ¿Sería así?**
 * public String toString toString de la subclase { StringBuilder sb=new StringBuilder(super.toString); ¿¿esto se puede,no??**
 * sb.append(...);**
 * sb.append(...); y aqui ya voy añadiendo los atributos d la subclase }**

R: Por supuesto. Se puede heredar de sólo una clase (normal o abstracta) y de múltiples interfaces.
 * P: Otra cosa, sé que se puede heredar de una clase abstracta y de múltiples interfaces pero, ¿se podría heredar de una clase normal y de múltiples interfaces?**

R: Bueno, no es vinculante. Es decir, no existe ninguna relación entre el modificador y el tipo de clase (sea abstracta o no). Hasta ahora estamos trabajando sin poner modificadores de acceso (public, etc.), lo cual es incompleto. Por eso es normal que se me escape algún public en los ejemplos. Olvídate de los public cara el examen.
 * P: Práctica 3bis, cuando se hereda de la clase abstracta, todos los metodos empiezan a ser public.**

R: Debes invocar al método como visitar(String) porque así es como lo he creado: public interface Visitable {  public String visitar(String guia); } Al final añadí el argumento String guia, para darle algo de vida al programa, pero en realidad no se pedía. Puedes definirlo como te parezca, pero al invocarlo debes respetar dicha definición.
 * P: David en la 3 bis no me sale lo del interface sin poner String guia...**
 * Si lo quito me da error. ¿Me podrías explicar como va el interface por favor?**

<span style="background-attachment: initial !important; background-clip: initial !important; background-color: transparent !important; background-image: initial !important; background-origin: initial !important; display: block; left: 0px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; opacity: 1 !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; text-align: left !important; top: 0px; z-index: 999999 !important;">