public class Motor implements Measurable {
...
}
public Measurable motorTemperature = new Motor();
オブジェクトのタイプは何motorTemperature
ですか? モーター、測定可能、またはその両方ですか?
Motor
インターフェイスとして静的に型指定された変数にオブジェクトを割り当てた場合でも、オブジェクトの実行時の型は維持されますMeasurable
。型は動作を定義し、インターフェイスはキャストなしで呼び出すことができるメソッドを定義します。
インターフェイス Measurable を実装する新しい Motor() オブジェクトをインスタンス化したため、これは Motor オブジェクトです。
インターフェイスはインスタンス化できないため、Measurable 型をインスタンス化することはできません。インターフェイスは、このインターフェイスを実装するオブジェクトが x アクションを実行できることを示します
クラス Motor およびインターフェース Measurable です。
インターフェイスとクラスの分離は複数の継承の印象を与える Java の方法である ため、両方とも異なる意味の型ですが、インターフェイスの実装はコントラクトのみを指定します。