・ 修飾子 abstract と native

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


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

abstract は、 サブクラスでメソッドが再定義され実装される予定であることを示します。
native は Java以外の言語のモジュール内にメソッドの実装が存在することを示します。
abstractメソッドを1つでも含む(もしくは再定義せずにそのまま継承した) クラスは、やはり abstract として宣言しなくてはいけません。 abstractなクラスはオブジェクトを生成することはできません。
インターフェイスの定義内のメソッドは必ず abstract です。 したがって、そのことを修飾子 abstract によって明示する必要はありません。