finalメソッド
日本語 | 最終メソッド |
英語 | final method |
ふりがな | ふぁいなるめそっど |
フリガナ | ファイナルメソッド |
オーバーライドできないメソッド。
finalで修飾されたメソッド。
「final 戻り値 メソッド名(引数){ 実装 }」のように、メソッドの宣言の先頭にfinalが付けられたメソッド。
finalメソッドはオーバーライドすることができなくなる。
メソッドの性質上、オーバーライドさせたくない場合に使用する。
が、実際にはあまり使用機会はないだろう。
finalで修飾されたメソッド。
「final 戻り値 メソッド名(引数){ 実装 }」のように、メソッドの宣言の先頭にfinalが付けられたメソッド。
finalメソッドはオーバーライドすることができなくなる。
メソッドの性質上、オーバーライドさせたくない場合に使用する。
が、実際にはあまり使用機会はないだろう。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
SuperClass superClass = new SubClass();
superClass.notOverridable();
// SuperClass#notOverridable()
// 当然ですが、オーバーライドされてないメソッドが
// 呼ばれています。
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* オーバーライドされない、finalメソッド。
*/
public final void notOverridable()
{
System.out.println( "SuperClass#notOverridable()" );
}
}
/**
* サブクラス。
*/
class SubClass extends SuperClass
{
/**
* スーパークラスの同名・同引数のメソッドが
* finalメソッドなので、オーバーライドできません。
*/
// public void notOverridable(){}
// コンパイルエラー:
// SuperClass から final メソッドをオーバーライドできません。
}
public class Sample
{
public static void main( String[] args )
{
SuperClass superClass = new SubClass();
superClass.notOverridable();
// SuperClass#notOverridable()
// 当然ですが、オーバーライドされてないメソッドが
// 呼ばれています。
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* オーバーライドされない、finalメソッド。
*/
public final void notOverridable()
{
System.out.println( "SuperClass#notOverridable()" );
}
}
/**
* サブクラス。
*/
class SubClass extends SuperClass
{
/**
* スーパークラスの同名・同引数のメソッドが
* finalメソッドなので、オーバーライドできません。
*/
// public void notOverridable(){}
// コンパイルエラー:
// SuperClass から final メソッドをオーバーライドできません。
}
// Sample.java public class Sample { public static void main( String[] args ) { SuperClass superClass = new SubClass(); superClass.notOverridable(); // SuperClass#notOverridable() // 当然ですが、オーバーライドされてないメソッドが // 呼ばれています。 } } /** * スーパークラス。 */ class SuperClass { /** * オーバーライドされない、finalメソッド。 */ public final void notOverridable() { System.out.println( "SuperClass#notOverridable()" ); } } /** * サブクラス。 */ class SubClass extends SuperClass { /** * スーパークラスの同名・同引数のメソッドが * finalメソッドなので、オーバーライドできません。 */ // public void notOverridable(){} // コンパイルエラー: // SuperClass から final メソッドをオーバーライドできません。 }