わかりやすい言葉で説明していただくか、記事へのリンクを貼っていただきますようお願いいたします。
ベストアンサー1
extends
クラスを拡張するためのものです。
implements
インターフェースを実装するためのものです
インターフェースと通常のクラスの違いは、インターフェースでは宣言されたメソッドを実装できないことです。インターフェースを「実装」するクラスだけがメソッドを実装できます。インターフェースの C++ 相当は抽象クラスです (まったく同じではありませんが、ほぼ同じです)。
また、Java はクラスの多重継承をサポートしていません。これは複数のインターフェースを使用することで解決されます。
public interface ExampleInterface {
public void doAction();
public String doThis(int number);
}
public class sub implements ExampleInterface {
public void doAction() {
//specify what must happen
}
public String doThis(int number) {
//specfiy what must happen
}
}
現在クラスを拡張中
public class SuperClass {
public int getNb() {
//specify what must happen
return 1;
}
public int getNb2() {
//specify what must happen
return 2;
}
}
public class SubClass extends SuperClass {
//you can override the implementation
@Override
public int getNb2() {
return 3;
}
}
この場合
Subclass s = new SubClass();
s.getNb(); //returns 1
s.getNb2(); //returns 3
SuperClass sup = new SuperClass();
sup.getNb(); //returns 1
sup.getNb2(); //returns 2
また、元のインターフェースメソッドにはオーバーライドする@Override
ものがないので、インターフェースを実装するためにタグは必要ないことに注意してください。
オブジェクト指向プログラミングにおける動的バインディング、ポリモーフィズム、一般的な継承についてさらに研究することをお勧めします。