https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1220027077 abstract(class)は抽象クラスで継承して中身を実装しないと使えないクラスのこと。 interfaceはクラスに求めらる必須条件を定義するためのテンプレートみたいなものです。 実際の違いとしては 1)abstractクラスは一つしか継承できないが、interfaceは複数実装できる 2)abstractクラスでは、共通メソッドを定義出来るが、interfaceでは中身のあるメソッドは実装できない ってところでしょうかね。 使いどころの違いとしては、interfaceは主にライブラリに渡すコールバック処理を行うようなクラスを既定するような場合(フレームワークに「マウスのボタンが押されたときに呼び出す」処理などを既定したクラスを渡すような場合とか)
![javaで、interfaceとabstractの違いを教えてください - abstract(class)は抽象クラスで継承して中身を... - Yahoo!知恵袋](https://cdn-ak-scissors.b.st-hatena.com/image/square/1d07bee2b75b182ba712690f3a3464c29972e28b/height=288;version=1;width=512/https%3A%2F%2Fs.yimg.jp%2Fimages%2Fks%2Fclap%2Fimage%2Fogp%2Fogp.png)