Foros del Web » Programación para mayores de 30 ;) » Java »

puede haber una herencia sin extends

Estas en el tema de puede haber una herencia sin extends en el foro de Java en Foros del Web. puede haber una herencia sin extends, el maestro puso este ejemplo y dice que es herencia pero lo que me llama la atención es que ...
  #1 (permalink)  
Antiguo 28/05/2014, 00:52
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
puede haber una herencia sin extends

puede haber una herencia sin extends, el maestro puso este ejemplo y dice que es herencia pero lo que me llama la
atención es que no utiliza la palabra extends, entonces puede haber una herencia sin extends, si se fijan esto funciona bien.
realmente el código esta muy interesante, aparte me dijo el maesrtro que esta es la fuerza de programacion objetos, me gustaria saber la opinion de un experto, realmente a si se piensa en objetos o si esto es herencia,sin embargo esto funciona

Código Java:
Ver original
  1. package ff.eje2;
  2. public class Sistema {
  3.      public static void main(String [] args)
  4.     {
  5.          Asignatura asignatura1 = new Asignatura(10001, "Programacion 1");
  6.          Asignatura asignatura2 = new Asignatura(10002, "base de datos");
  7.          Asignatura asignatura3 = new Asignatura(10003, "tecnologia de sistemasd");
  8.          
  9.          Alumno pedro = new  Alumno(asignatura1, asignatura2, asignatura3);
  10.         // Alumno miguel = new Alumno(asignatura1, asignatura2, asignatura3);
  11.          Profesor jose = new Profesor();
  12.    
  13.  
  14.         jose.ponerCalificacion(pedro);
  15.         System.out.println("Promedio de Pedro=" + jose.calcularMedia(pedro));
  16.        
  17.        // jose.ponerCalificacion(miguel);
  18.        // System.out.println("Promedio de Miguel=" + jose.calcularMedia(miguel));
  19.          
  20.     }
  21.    
  22. }


Código Java:
Ver original
  1. package ff.eje2;
  2. public class Asignatura
  3. {
  4.    private int id;
  5.    private double calificacion;
  6.    private  String nombre;
  7.  
  8.       public Asignatura(int id, String nombre)
  9.      {
  10.         this.id = id;
  11.         this.nombre = nombre;
  12.      }
  13.  
  14.     public double getCalificacion()
  15.     {
  16.        return calificacion;
  17.     }
  18.     public int getId()
  19.     {
  20.         return id;
  21.     }
  22.     public void setId(int id)
  23.     {
  24.         this.id = id;
  25.     }
  26.     public void setCalificacion(double calificacion)
  27.    {
  28.         this.calificacion = calificacion;
  29.    }
  30.    
  31. }



Código Java:
Ver original
  1. package ff.eje2;
  2. public class Alumno {
  3.  private Asignatura asignatura1;
  4.  private Asignatura asignatura2;
  5.  private Asignatura asignatura3;
  6.     public Alumno(Asignatura materia1, Asignatura materia2, Asignatura materia3)
  7.     {
  8.         this.asignatura1 = materia1;
  9.         this.asignatura2 = materia2;
  10.         this.asignatura3 = materia3;
  11.     }
  12.     public Asignatura getAsignatura1()
  13.     {
  14.         return asignatura1;
  15.     }
  16.       public Asignatura getAsignatura2()
  17.     {
  18.         return asignatura2;
  19.     }
  20.      public Asignatura getAsignatura3()
  21.     {
  22.         return asignatura3;
  23.     }  
  24.     public void setAsignatura1(Asignatura asignatura1)
  25.     {
  26.         this.asignatura1 = asignatura1;
  27.     }
  28.     public void setAsignatura2(Asignatura asignatura2)
  29.     {
  30.         this.asignatura2 = asignatura2;
  31.     }
  32.     public void setAsignatura3(Asignatura asignatura3)
  33.     {
  34.         this.asignatura3 = asignatura3;
  35.     }
Código Java:
Ver original
  1. package ff.eje2;
  2. public class Profesor
  3. {
  4.      public Profesor()
  5.     {
  6.         System.out.println("EL profesor fue dado de alta!");
  7.     }
  8.     public void ponerCalificacion(Alumno alumno)
  9.     {
  10.          double calificacion1 = Math.random() * 100;
  11.          double calificacion2 = Math.random() * 100;
  12.          double calificacion3 = Math.random() * 100;
  13.         alumno.getAsignatura1().setCalificacion(calificacion1);
  14.         alumno.getAsignatura1().setCalificacion(calificacion2);
  15.         alumno.getAsignatura1().setCalificacion(calificacion3);
  16.        
  17.         System.out.println("Calificacion1 = " + calificacion1);
  18.         System.out.println("Calificacion2 = " + calificacion2);
  19.         System.out.println("Calificacion3 = " + calificacion3);
  20.     }
  21.      public double calcularMedia(Alumno alumno)
  22.     {
  23.         double calificacion1 = alumno.getAsignatura1().getCalificacion();
  24.         double calificacion2 = alumno.getAsignatura1().getCalificacion();
  25.         double calificacion3 = alumno.getAsignatura1().getCalificacion();
  26.         return (calificacion1 + calificacion2 + calificacion3  )/3;
  27.     }
  28. }

Última edición por jor_0203; 28/05/2014 a las 00:58
  #2 (permalink)  
Antiguo 28/05/2014, 01:24
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: puede haber una herencia sin extends

No sé qué es lo que habrá dicho tu profesor, pero estoy seguro de que no lo has entendido.

En ese código no hay herencia ni nada que se le parezca.

Cita:
me gustaria saber la opinion de un experto, realmente a si se piensa en objetos o si esto es herencia,sin embargo esto funciona
¿Qué quieres decir en esta frase?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 28/05/2014, 01:26
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: puede haber una herencia sin extends

Buenos días,

antes de nada decir que yo no me considero un experto jaja, eso se lo dejo a otra gente ;), pero daré mi opinión

Yo no veo herencia por ninguna parte en ese código que nos proporcionas... la herencia que yo sepa consiste en tener una clase padre con una serie de métodos comúnes para las clases hijas que heredan de esta, por ejemplo con el siguiente ejemplo:

Código Java:
Ver original
  1. public class Animal {
  2.     private String nombre;
  3.     private String color;
  4.    
  5.     public String getNombre() {
  6.         return nombre;
  7.     }
  8.     public void setNombre(String nombre) {
  9.         this.nombre = nombre;
  10.     }
  11.     public String getColor() {
  12.         return color;
  13.     }
  14.     public void setColor(String color) {
  15.         this.color = color;
  16.     }  
  17. }

Código Java:
Ver original
  1. public class Gato extends Animal{}

Tenemos la clase Animal y la clase Gato que hereda de Animal, entonces podríamos hacer una instancia de la clase Gato y como este ya recibe automáticamente los métodos que hereda de Animal, podríamos utilizarlos así:

Código Java:
Ver original
  1. public static void main(String[]args){     
  2.         Gato g = new Gato();
  3.         System.out.println(g.getNombre() + " " +g.getColor());
  4.     }
  #4 (permalink)  
Antiguo 28/05/2014, 01:32
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por Xerelo Ver Mensaje
No sé qué es lo que habrá dicho tu profesor, pero estoy seguro de que no lo has entendido.

En ese código no hay herencia ni nada que se le parezca.


¿Qué quieres decir en esta frase?
ve como se comunican las clases
se me hace muy interesante
realmente esto es la fuerza de programar con objetos
  #5 (permalink)  
Antiguo 28/05/2014, 01:35
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por rgf1987 Ver Mensaje
Buenos días,

antes de nada decir que yo no me considero un experto jaja, eso se lo dejo a otra gente ;), pero daré mi opinión

Yo no veo herencia por ninguna parte en ese código que nos proporcionas... la herencia que yo sepa consiste en tener una clase padre con una serie de métodos comúnes para las clases hijas que heredan de esta, por ejemplo con el siguiente ejemplo:

Código Java:
Ver original
  1. public class Animal {
  2.     private String nombre;
  3.     private String color;
  4.    
  5.     public String getNombre() {
  6.         return nombre;
  7.     }
  8.     public void setNombre(String nombre) {
  9.         this.nombre = nombre;
  10.     }
  11.     public String getColor() {
  12.         return color;
  13.     }
  14.     public void setColor(String color) {
  15.         this.color = color;
  16.     }  
  17. }

Código Java:
Ver original
  1. public class Gato extends Animal{}

Tenemos la clase Animal y la clase Gato que hereda de Animal, entonces podríamos hacer una instancia de la clase Gato y como este ya recibe automáticamente los métodos que hereda de Animal, podríamos utilizarlos así:

Código Java:
Ver original
  1. public static void main(String[]args){     
  2.         Gato g = new Gato();
  3.         System.out.println(g.getNombre() + " " +g.getColor());
  4.     }
entonces que es esto
supuestamente esto es la base de programacion objetos
y me llama la atención de como se comunican
ve el codigo y ve como se llaman entre si
se me hace genial
aunque no se si esto es la fuerza de programar en objetos
  #6 (permalink)  
Antiguo 28/05/2014, 01:36
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por jor_0203 Ver Mensaje
ve como se comunican las clases
se me hace muy interesante
realmente esto es la fuerza de programar con objetos???
  #7 (permalink)  
Antiguo 28/05/2014, 01:40
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

si se fijan un clase llama a la otra
es decir
sistema llama a Asignatura

Asignatura llama a Alumno

Alumno llama a profesor
y todos estan conectados
pasándose valores de una clase a otra
aunque no entiendo bien el codigo esto funciona
bien
ojala me pudieran explicar el codigo
ya que esta forma se me hace muy rara
y no se si sea correcta
  #8 (permalink)  
Antiguo 28/05/2014, 01:43
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: puede haber una herencia sin extends

En toda forma de vida la Fuerza reside. Usarla pueden.

Abandonarte la Fuerza no puede. Constante ella es. Si encontrarla no puedes, en tu interior y no fuera deberás mirar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #9 (permalink)  
Antiguo 28/05/2014, 01:43
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por Xerelo Ver Mensaje
No sé qué es lo que habrá dicho tu profesor, pero estoy seguro de que no lo has entendido.

En ese código no hay herencia ni nada que se le parezca.


¿Qué quieres decir en esta frase?
fijate como una clase depende de otra
esto para mi es raro
no lo había visto
  #10 (permalink)  
Antiguo 28/05/2014, 03:06
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 9 meses
Puntos: 606
Respuesta: puede haber una herencia sin extends

Que una clase depende de otra no implica que haya herencia. Creo que tendrías que atender mejor a clase y sobre todo a los conceptos porque sino te apareceran estos lios...

Para comenzar puedes ir mirando por la wikipedia:

- Herencia
__________________
Aviso: No se resuelven dudas por MP!
  #11 (permalink)  
Antiguo 28/05/2014, 03:12
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por Malenko Ver Mensaje
Que una clase depende de otra no implica que haya herencia. Creo que tendrías que atender mejor a clase y sobre todo a los conceptos porque sino te apareceran estos lios...

Para comenzar puedes ir mirando por la wikipedia:

- Herencia
entonces como se llama esto
vee el codigo y analiza
  #12 (permalink)  
Antiguo 28/05/2014, 03:19
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 9 meses
Puntos: 606
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por jor_0203 Ver Mensaje
entonces como se llama esto
vee el codigo y analiza
Como se llama el que? Que parte exacta?

P.D.: En cuanto a la duda del hilo "puede haber herencia sin extends" la respuesta es que NO.
__________________
Aviso: No se resuelven dudas por MP!
  #13 (permalink)  
Antiguo 28/05/2014, 05:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: puede haber una herencia sin extends

Eso es la base de la programación orientada a objetos: clases que se ven unas a otras y se llaman.

Es una forma de programación que inicialmente "choca" a la gente que está acostumbrada a otros lenguajes de programación no orientados a objetos, pero como te comento, ese código que has puesto no es más que la base de la orientación a objetos, sin usar ninguna de sus características "avanzadas" (herencia, polimorfismo, ...).

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #14 (permalink)  
Antiguo 28/05/2014, 08:33
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por chuidiang Ver Mensaje
Eso es la base de la programación orientada a objetos: clases que se ven unas a otras y se llaman.

Es una forma de programación que inicialmente "choca" a la gente que está acostumbrada a otros lenguajes de programación no orientados a objetos, pero como te comento, ese código que has puesto no es más que la base de la orientación a objetos, sin usar ninguna de sus características "avanzadas" (herencia, polimorfismo, ...).

Se bueno.

exacto eso es lo que mae llamo la atención donde encuentro ejemplos de este tipo ya que me esta costando mucho trabajo, aparte el cuate no usa herencia nni polimorfismo, mi pregunta esto es valido o esta mal esto.
  #15 (permalink)  
Antiguo 28/05/2014, 08:54
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: puede haber una herencia sin extends

es perfectamente válido. No es obligatorio usar herencia y polimorfismo si no hay necesidad.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #16 (permalink)  
Antiguo 28/05/2014, 10:18
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años
Puntos: 8
Respuesta: puede haber una herencia sin extends

Cita:
Iniciado por chuidiang Ver Mensaje
Eso es la base de la programación orientada a objetos: clases que se ven unas a otras y se llaman.

Es una forma de programación que inicialmente "choca" a la gente que está acostumbrada a otros lenguajes de programación no orientados a objetos, pero como te comento, ese código que has puesto no es más que la base de la orientación a objetos, sin usar ninguna de sus características "avanzadas" (herencia, polimorfismo, ...).

Se bueno.
exacto eso es lo que mae llamo la atención donde encuentro ejemplos de este tipo ya que me esta costando mucho trabajo, aparte el cuate no usa herencia nni polimorfismo, mi pregunta esto es valido o esta mal esto.
no hay un foro o block donde hay este tipo de ejemplos ya que todo lo que yo veo es en relación a herencia y como esto no ocupa herencia me gustaria saber un poquito de como se programaba antes
gracias

Etiquetas: extends, herencia, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.