2

私はこのクラスを持っています

public class AdapterListView extends BaseAdapter { }

getCount()などのメソッドを実装しないと、エラーが発生しました

エラーは次のとおりです。

タイプAdapterListViewは、継承された抽象メソッドAdapter.getCount()を実装する必要があります

BaseAdapterクラスはとを実装しListAdapterますSpinnerAdapter。これらのインターフェースはインターフェースからメソッドを継承しAdapterますが、このインターフェースには次の抽象メソッドがあります。

  • getCount()
  • getItem()
  • getItemId()
  • getItemViewType()
  • getView()
  • getViewTypeCount()
  • hasStableIds()
  • isEmpty()
  • registerDataSetObserver()
  • unregisterDataSetObserver()

詳細については、アダプタインターフェイスを参照してください。

しかし、私はgetCount()、getItem()、getItemId()、getView()を実装するだけです。そして、コンパイラはこのエラーを出しません。なぜこれが起こるのですか?

4

3 に答える 3

2

これらのメソッドを実装する必要がない理由は、これらのメソッドがすでに抽象クラスに実装されているためBaseAdapterです。

ソースコードのリンクを参照してください:BaseAdapter

クラス型abstractは、いくつかのメソッドを実装し、それを拡張するクラスに実装するためにいくつかを残すことができます。

よろしく。

于 2012-10-29T01:03:54.937 に答える
0

クラスを拡張する場合、このクラスのすべてのメソッドを実装する必要はありません。一部のメソッドは、少なくともgetCount()、getId()などのように宣言する必要があり、必要に応じてオーバーライドすることもできます。Eclipseでは、クラス名にカーソルを合わせてクリックすると、どのメソッドを宣言する必要があるかを確認できます。

于 2012-10-29T00:43:20.000 に答える
0

これらのメソッドの名前を変更しないでください

getCount();

getItem();

getItemId();

getItemViewType();

getView();

getViewTypeCount();

于 2016-12-24T20:40:30.900 に答える