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- package ff.eje2; 
- public class Sistema { 
-      public static void-  main (String []-  args )
 
-     { 
-          Asignatura asignatura1 = new Asignatura(10001, "Programacion 1"); 
-          Asignatura asignatura2 = new Asignatura(10002, "base de datos"); 
-          Asignatura asignatura3 = new Asignatura(10003, "tecnologia de sistemasd"); 
-           
-          Alumno pedro = new  Alumno(asignatura1, asignatura2, asignatura3); 
-         // Alumno miguel = new Alumno(asignatura1, asignatura2, asignatura3); 
-          Profesor jose = new Profesor(); 
-     
-   
-         jose.ponerCalificacion(pedro); 
-         System- . out- . println("Promedio de Pedro=" +-  jose. calcularMedia(- pedro ));
 
-          
-        // jose.ponerCalificacion(miguel); 
-        // System.out.println("Promedio de Miguel=" + jose.calcularMedia(miguel)); 
-           
-     } 
-      
- } 
Código Java:
Ver original- package ff.eje2; 
- public class Asignatura  
- { 
-    private int id; 
-    private double calificacion; 
-   
-       public-  Asignatura (int-  id,  String-  nombre )
 
-      { 
-         this.id = id; 
-         this.nombre = nombre; 
-      } 
-   
-     public double getCalificacion() 
-     { 
-        return calificacion; 
-     } 
-     public int getId()  
-     { 
-         return id; 
-     } 
-     public void setId(int id)  
-     { 
-         this.id = id; 
-     } 
-     public void setCalificacion(double calificacion) 
-    { 
-         this.calificacion = calificacion; 
-    } 
-     
- } 
Código Java:
Ver original- package ff.eje2; 
- public class Alumno { 
-  private Asignatura asignatura1; 
-  private Asignatura asignatura2; 
-  private Asignatura asignatura3; 
-     public Alumno(Asignatura materia1, Asignatura materia2, Asignatura materia3) 
-     { 
-         this.asignatura1 = materia1; 
-         this.asignatura2 = materia2; 
-         this.asignatura3 = materia3; 
-     } 
-     public Asignatura getAsignatura1()  
-     { 
-         return asignatura1; 
-     } 
-       public Asignatura getAsignatura2() 
-     { 
-         return asignatura2; 
-     } 
-      public Asignatura getAsignatura3() 
-     { 
-         return asignatura3; 
-     }   
-     public void setAsignatura1(Asignatura asignatura1) 
-     { 
-         this.asignatura1 = asignatura1; 
-     } 
-     public void setAsignatura2(Asignatura asignatura2) 
-     { 
-         this.asignatura2 = asignatura2; 
-     } 
-     public void setAsignatura3(Asignatura asignatura3)  
-     { 
-         this.asignatura3 = asignatura3; 
-     } 
Código Java:
Ver original- package ff.eje2; 
- public class Profesor  
- { 
-      public Profesor() 
-     { 
-         System- . out- . println("EL profesor fue dado de alta!");
 
-     } 
-     public void ponerCalificacion(Alumno alumno) 
-     { 
-          double-  calificacion1  = Math- . random() * 100;
 
-          double-  calificacion2  = Math- . random() * 100;
 
-          double-  calificacion3  = Math- . random() * 100;
 
-         alumno.getAsignatura1().setCalificacion(calificacion1); 
-         alumno.getAsignatura1().setCalificacion(calificacion2); 
-         alumno.getAsignatura1().setCalificacion(calificacion3); 
-          
-         System- . out- . println("Calificacion1 = " +-  calificacion1 );
 
-         System- . out- . println("Calificacion2 = " +-  calificacion2 );
 
-         System- . out- . println("Calificacion3 = " +-  calificacion3 );
 
-     } 
-      public double calcularMedia(Alumno alumno) 
-     { 
-         double calificacion1 = alumno.getAsignatura1().getCalificacion(); 
-         double calificacion2 = alumno.getAsignatura1().getCalificacion(); 
-         double calificacion3 = alumno.getAsignatura1().getCalificacion(); 
-         return (calificacion1 + calificacion2 + calificacion3  )/3; 
-     } 
- }