Vorrei sapere se esiste un modo in cui posso rendere obbligatorio per la classe implementatore dichiarare gli handle handle/primitives come fanno con i metodi. per es .:Attributi/variabili membro nelle interfacce?
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) {
}
}
Nel metodo di cui sopra come possiamo costringere classe Tile per dichiarare attributi altezza e larghezza mediante l'interfaccia? Per qualche ragione, desidero farlo solo con l'interfaccia!
Inizialmente ho pensato di usarlo con l'ereditarietà. Ma la cosa è che devo affrontare con 3 classi.!
- rettangolo
- Tile
- JLabel.!
class Tile extends JLabel implements Rectangle {}
avrebbe funzionato.!
ma
class Tile extends JLabel extends Rectangle {}
non woud.!
L'interfaccia non è corretta. Non può contenere attributi. Forse vuoi usare una lezione astratta? – pvoosten
@lbp Che [verrà effettivamente compilato] (http://www.coderanch.com/t/178630/java-SCJA/certification/Instance-variables-interface) ;-) È solo ... non il "previsto" comportamento. Il compilatore assume/applica un modificatore 'statico finale '. –
Potrebbe essere utile usare Altezza invece di Hieght e Hight. Hight è il participio passato di highten, hihten, chiamare, essere chiamato.;) –