修飾子 abstract と native

 abstract と native は、いずれもクラス内に実装を持たない メソッドを宣言するためのキーワードです。 これらの修飾子が付いたメソッドは、名前のみで定義のブロックが存在しません。


  abstract public void addSomething();
  native public void callSomething();

 abstract は、 サブ・クラスでメソッドが再定義され実装される予定であることを示します。
 native は、Java言語以外のモジュール内にメソッドの実装が存在することを 示します。

 abstract メソッドを1つでも含む(もしくは再定義せずにそのまま継承した) クラスは、やはり abstract として宣言しなくてはいけません。 abstract なクラスはオブジェクトを生成することはできません。

 インターフェイスの定義内のメソッドは必ず abstract でなくてはらず そのことを修飾子 abstract によって明示する必要はありません。