Java - heredar parte de una interface (abstract class)

 
Vista:
sin imagen de perfil

heredar parte de una interface (abstract class)

Publicado por Sergio (3 intervenciones) el 21/04/2017 14:46:56
Buenas, tengo un problema para elegir qué métodos quiero heredar de una interface. Tengo dos interfaces llamésmolas a y b (no hace falta que pegue aquí todo el código, aún) y quiero crear una clase que tenga sólo una parte de sus métodos, ambas interfaces (a y b) tienen muchos métodos. Para simplificar y que yo lo vea más claro prefiero poner un ejemplo como este:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public interface a {
 
metodo 1
metodo 2
metodo 3
}
 
public interface b {
 
metodo 4
metodo 5
}
 
abstract clase c implements a, b {
metodo3
metodo 5
}

Por lo que tengo entendido tendría que hacerlo así

1
2
3
4
5
6
7
public class c1 extends c {
@Override
   metodo 3
@Override
   metodo5
 
}

entonces me suelta el error que si "c" no es abstracta tengo que heredar también el resto de métodos de ambas interfaces (a y b).

Alguna pista, de qué estoy haciendo mal? Cómo lo haríais vosotros?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

heredar parte de una interface (abstract class)

Publicado por Jordi (135 intervenciones) el 21/04/2017 17:14:56
Hola Sergio,

Por lo que yo sé una interfaz viene a ser algo como un molde para las clases que la implementan. Por ello no puedes elegir que métodos implementar y cuales no. A tu problema le veo dos soluciones así de primeras:

1. Hacer varios niveles de interfaz una extendiendo de otra y que cada una se adapte a las necesidades de la clase a la que tengas pensado implementarla.

2. Implementar todos los métodos de la interfaz, dejando los métodos que no vayas a usar en blanco (public void método1(){}).

Yo veo mejor la primera solución.

Sé bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

heredar parte de una interface (abstract class)

Publicado por Tom (1831 intervenciones) el 21/04/2017 18:54:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public interface a {
  public method_1();
}
public interface aa extends a {
  public method_2();
  public method_3();
}
public interface b {
  public method_10();
}
public interface ba extends b {
  public method_11();
  public method_12();
}
 
public class c1 implements a, b {
...
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar