最終的にandroidjavaインターフェイスをインスタンス化することはできません
Android Java Interface End Can Not Be Instantiated
まず、一般的なコードを見てみましょう。
tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } })
新しいOnClickListenerはまだ記録されており、左側のCtrl +ソースに表示されます。
public interface OnClickListener { /** * Called when a view has been clicked. * * @param v The view that was clicked. */ void onClick(View v) }
現時点では、多くの学生が、Javaの基礎を学び、見て、知って、教師が繰り返し言ったときに、大きな問題があります。インターフェイスはインスタンス化されません、OnClickListenerの上のこのインターフェイスがなぜ新しいのか、今回は大きな疑問符があります。最終的にインターフェイスをインスタンス化することはできません。答えはいいえだ!できません!
これがなぜであるかを説明してください:
これは匿名の内部クラス文言。新しいOnClickListener(){}は実際にはありませんでした本当にインスタンス化する、
ただし、インターフェイスを実装し、新しいオブジェクトを取得する新しい匿名内部クラス匿名内部クラスその後、上向きに移行
そのインターフェース(プリミティブ型)を実現するために。
そのような説明では不十分かもしれません。コードの一部を見てみましょう。
class MineListener implements OnClickListener { @Override public void onClick(View v) { // define a class of their own to achieve this interface // and implemented onClick method } }
tv.setOnClickListener(new MineListener())
今回は生徒がそれを理解する必要があります。匿名の内部クラスは、このステップインターフェイスを実装するための小さなクラスを作成しました。