静的メソッド

提供: RAD Studio
移動先: 案内検索

コンポーネント開発者のためのオブジェクト指向プログラミング:インデックス への移動

特に指定しなければ,すべてのメソッドは静的メソッドになります。静的メソッドは,普通の手続きや関数と同じように動作します。コンパイラはメソッドの正確なアドレスを決定し,コンパイル時にそのメソッドをリンクします。

静的メソッドの第一の利点は,ディスパッチが高速であることです。コンパイラは静的メソッドの正確なアドレスを決定して,メソッドを直接リンクできます。これに対して仮想メソッドと動的メソッドでは,実行時に間接的な方法でメソッドのアドレスを探す必要があるため多少遅くなります。

静的メソッドは下位クラスに継承されても変化しません。静的メソッドを含むクラスを宣言し,そのクラスから新しいクラスを派生させた場合,派生クラスはまったく同じメソッドを同じアドレスで共有します。つまり,静的メソッドがオーバーライドできないことを意味しています。静的メソッドは,どのクラスで呼び出されたとしても常にまったく同じ動作をします。派生クラス内で上位クラスの静的メソッドと同じ名前のメソッドを宣言した場合,派生したクラスの継承メソッドが新しいメソッドに置き換えられます。