Deseo saber si hay alguna manera en la que pueda obligar a la clase de implementador a declarar los objetos identificadores/primitivos como lo hacen con los métodos. por ej .:Atributos/variables miembro en interfaces?
public interface Rectangle {
int height = 0;
int width = 0;
public int getHeight();
public int getWidth();
public void setHeight(int height);
public void setWidth(int width);
}
public class Tile implements Rectangle{
@Override
public int getHeight() {
return 0;
}
@Override
public int getWidth() {
return 0;
}
@Override
public void setHeight(int height) {
}
@Override
public void setWidth(int width) {
}
}
En el método anterior, ¿cómo podemos obligar a la clase del azulejo para declarar la altura y la anchura de los atributos utilizando la interfaz? Por alguna razón, deseo hacerlo solo con la interfaz.
Inicialmente pensé en usarlo con herencia. Pero la cosa es que tengo que lidiar con 3 clases.!
- rectángulo
- Teja
- JLabel.!
class Tile extends JLabel implements Rectangle {}
funcionaría.!
pero
class Tile extends JLabel extends Rectangle {}
no woud.!
Su interfaz es incorrecta. No puede contener atributos. ¿Tal vez quieres usar una clase abstracta? – pvoosten
@lbp Eso [compilará realmente] (http://www.coderanch.com/t/178630/java-SCJA/certification/Instance-variables-interface) ;-) Es simplemente ... no el "esperado" comportamiento. El compilador asume/aplica un modificador 'static final'. –
Puede usar Height en lugar de Hieght and Hight. Hight es el participio pasado de highten, hihten, para llamar, ser llamado.;) –