私は、実装者クラスがオブジェクトのハンドル/プリミティブをメソッドと同じように宣言するように強制することができます。上記の方法では例えばのための :インターフェイス内の属性/メンバー変数?
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) {
}
}
どのように我々は、インタフェースを使用して、高さと幅の属性を宣言するタイルクラスを強いることができますか?なんらかの理由で、私はインターフェイスだけでそれをやりたい!
私は最初に継承を使用すると考えました。 しかし、私は3つのクラスに対処しなければなりません!
- 長方形
- タイル
- のJLabel。!
class Tile extends JLabel implements Rectangle {}
働くだろう。!
しかし
class Tile extends JLabel extends Rectangle {}
はないwoud。!
インターフェイスが正しくありません。属性を含めることはできません。多分あなたは抽象クラスを使いたいでしょうか? – pvoosten
@lbpそれは[実際にコンパイルする](http://www.coderanch.com/t/178630/java-SCJA/certification/Instance-variables-interface);-)それはちょうど... "期待された"動作。コンパイラは 'final static'修飾子を仮定/適用します。 –
HieghtとHightの代わりにHeightを使用することができます。 Hightはhihtenの過去分詞であり、hihtenと呼ばれ、呼び出される。;) –