Persona is-a Persona?

Iniciado por Carlosjava, 9 Agosto 2015, 10:52 AM

0 Miembros y 1 Visitante están viendo este tema.

Carlosjava

En una pregunta del test me salieron estas opciones, si son correctas o incorrectas

Profesor extends Persona
profesorAsalariado extends Profesor

Estas son las opciones:

Profesor IS-A Persona
Profesor HAS-A Persona
profesorAsalariado IS-A Profesor
Persona IS-A Persona

Cuales de ellas son correctas? 3 de 4 son correctas, creo que es una pregunta trampa y necesitaria vuestra ayuda, gracias.

ivancea96

Podemos decirte cuales son, o puedes decirnos tú cuales crees que son y por qué. Y ya luego te explicamos si fallaste algo, o si está todo bien xD

Carlosjava

Yo creo que la segunda es incorrecta, el resto son correctas.

Me equivoco?? :rolleyes: :P

HAS-A (tiene un/a...) no es lo mismo que IS-A(es un/a...)

lo que me ha parecido mas raro es la opcion Persona is a Persona... porque en netbeans si pongo eso no compilaria por la palabra repetida ...

ivancea96

¿No compilaría? ¿Qué es lo que te marca?

Haciendo una prueba con algo como:

Código (java) [Seleccionar]
class Persona{}
class Profesor extends Persona{}
class ProfesorAsalariado extends Profesor{}

public class A{
    public static void main(String[] args){
        Persona persona = new Persona();
        Profesor profesor = new Profesor();
        ProfesorAsalariado profesorAsalariado = new ProfesorAsalariado();

        if(profesor instanceof Persona) // Profesor IS-A Persona
            System.out.println("YES");
        else
            System.out.println("NO");

        if(profesorAsalariado instanceof Profesor) // ProfesorAsalariado IS-A Profesor
            System.out.println("YES");
        else
            System.out.println("NO");

        if(persona instanceof Persona) // Persona IS-A Persona
            System.out.println("YES");
        else
            System.out.println("NO");

        if(persona instanceof Profesor) // EXTRA: Persona IS-A Profesor
            System.out.println("YES");
        else
            System.out.println("NO");
    }
}


La salida es:
CitarYES
YES
YES
NO

Carlosjava

#4
Muchas gracias por tu tiempo y por aclararme las dudas!!

Tengo otro problema q no lo tengo muy claro, si pido mucho, no te molestes en responderme aunque te lo agradeceria mucho.

Gracias otra vez por aclararme las dudas de Persona, saludos.

Código (java) [Seleccionar]
class Test
{
   public static void main(String args[])
   {
       int c = 0;
       A: for(int i = 0; i < 2; i++)
       {
           B: for(int j = 0; j < 2; j++)
           {
               C: for(int k = 0; k < 3; k++)
               {
                   c++;
                   if(k>j) break;
               }
           }
       }
       System.out.println(c);
   }
}


Hago el debug y no se para donde va la verdad... que si empieza por la etiqueta C y luego por B...

Consola: 10


Mod: Los códigos deben ir en etiquetas GeSHi

ivancea96

No entiendo qué quieres hacer.

Y a todo esto, recuerda poner las etiquetas GeSHi rodeando el códgo a la hora de crear los mensajes. O con el selector de opciones, o escribiendo "[ code=java ] [/ code ]" (sin los espacios)

Carlosjava

Que que quiero hacer? Pues aclarar y resolver mis dudas...

Perdon por no poner las etiquetas, para la proxima vez lo haré, gracias por avisar.

Un saludo.

DarK_FirefoX

Cita de: Carlosjava en 10 Agosto 2015, 13:44 PM
Que que quiero hacer? Pues aclarar y resolver mis dudas...

Jajaja  :laugh: :silbar:

ivancea96 se refiere a que: ¿Que quieres hacer con tu código?

Salu2s