2009-06-30 16 views
7

¿Qué es super-interface es java? ¿Cuál es el propósito de la super-interfaz?superinterface en java

+4

Recomiendo usar Google antes de hacer preguntas de esta naturaleza. – dborba

+0

¿Quiere decir "super()"? super en java hace referencia al objeto base de la clase. – Zack

+1

@DB, creo que está bien hacer una pregunta básica que podría buscarse en SO. Ver http://stackoverflow.com/questions/1003841/how-do-i-move-the-turtle-in-logo por Jeff. –

Respuesta

1

Si tiene

public interface Bar extends Foo 

continuación Foo sería el súper interfaz de Bar. Este declara que todas las instancias de Bar son también ejemplos de Foo y pueden ser tratados como tal, por lo que podía pasar una instancia Bar donde quiera que sea necesario para pasar un Foo, etc.

12

He aquí un ejemplo:

public interface A { 
    void doSomething(); 
} 

public interface B extends A { 
    void doSomethingElse(); 
} 

En este ejemplo, A es una superinterfaz de B. Es como ser una superclase. Cualquier clase que implemente B ahora también implementa A automáticamente y debe proporcionar una implementación de doSomething() y doSomethingElse().

+0

Nota: Eclipse también dice que X e Y son una "superinterfaz" para "interfaz Z extiende X, Y" – simpleuser

1

Básicamente, cuando una interfaz se extiende desde otra interfaz, está forzando a la clase que la implementa a implementar métodos en ambas interfaces.

Si un extiende se proporciona cláusula, entonces la interfaz de ser declarado extiende cada una de las otras interfaces nombradas y por lo tanto hereda los tipos de miembro, métodos, y las constantes de cada uno de los otros las interfaces nombradas. Estas otras interfaces denominadas son las superinterfaces directas de la interfaz que se declaran . Cualquier clase que implemente la interfaz declarada también es que se considera que implementa todas las interfaces que se extiende a esta interfaz .

Puede tener método también primordial :)

http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html

1

interfaces en Java pueden extender entre sí, de manera que la interfaz se extiende soporta todas las cosas proporcionados por los padres y las cosas que presta en sí . Por ejemplo, un conjunto tiene operaciones únicas, pero también admite todo lo que hace una colección.

Las interfaces desde las que se está extendiendo se consideran súper interfaces. Tenga en cuenta que una interfaz puede extender múltiples interfaces y, por lo tanto, tiene múltiples súper interfaces.

+0

En realidad, un Mapa no es una Colección. – ColinD

+0

@Uri - Map no extiende Collection ;-) La lista lo hace, para apoyar su punto. – Robin

+0

En realidad, Map no es explícitamente una Colección ya que sus operaciones se definen en pares de objetos en lugar de en un solo objeto. Los métodos del mapa son muy claros, ya sea que se apliquen a las claves o los valores: usar como Colección sería muy ambiguo. – James

0

cuando tiene 2 interfaces con algún campo relacionado (mismo) o métodos. debe usar uno como superInterface que el segundo extenderá, no debe duplicarlo. esto es porque la simplicidad y la claridad para ver exactamente lo que está pasando.

0

El término superinterfaz tiene ligeramente diferentes usos en función del contexto de (a) solamente interfaces, y (b) clases, como se describe a continuación:

(a) dado las interfaces A, y B, cuando B se extiende A entonces A es una superinterfaz de B (la explicación dada anteriormente por Tom.)

ver jls8, 8.1.5

(b) dado clase X, y la interfaz de C, cuando X implementa C, entonces C es un superinterfaz directa de X.

ver jls8, 9.1.3

El segundo caso aquí no está claro a partir de ninguna de las explicaciones previas. Es decir, en el caso (b) no hay ningún requisito para una cadena jerárquica de interfaces para usar el término superinterfaz.