Adapter
is an interface, which pretty much provides the skeleton framework of another class that implements it.
In this case, the (abstract) BaseAdapter
class implements Adapter
and ArrayAdapter
extends the BaseAdapter
(you can almost think of it like Adapter
is ArrayAdapter
s grandparent).
Here's some more information on interfaces: http://docs.oracle.com/javase/tutorial/java/concepts/interface.html
The difference between an interface and abstract class can be confusing at first but here's a helpful question: Interface vs Abstract Class (general OO)