スーパークラス
日本語 | 上クラス |
英語 | superclass |
ふりがな | すーぱーくらす |
フリガナ | スーパークラス |
継承関係にあるクラスにおいて、継承元となるクラス。
文法的には、extendsの右側に書かれたクラス。
ただし、直接の親でなく、2代以上前の継承元クラスもスーパークラスと呼ぶことがある。
スーパークラスに対して、extendsの左側に書かれた、継承先のクラスを「サブクラス」と言う。
「基本クラス」「基底クラス」「ベースクラス」「親クラス」「継承元クラス」「派生元クラス」と呼ばれることもあるが、Javaでは「スーパークラス」と呼ばれることが多い。
ちなみに「super」と聞くと「超」というイメージがあり、「サブクラスの方がスーパークラスより機能が多いのになぜ?」という疑問が浮かぶが、これは誤解である。
英語では、「super」が「上」、「sub」が「下」という意味を持つ。クラスの継承関係を図に書くとき、必ず継承元は上に、派生先は下に書く。「アップキャスト」「ダウンキャスト」と共に、「継承は上から下へと行われる」という概念を元に名付けられたと言える。
文法的には、extendsの右側に書かれたクラス。
ただし、直接の親でなく、2代以上前の継承元クラスもスーパークラスと呼ぶことがある。
スーパークラスに対して、extendsの左側に書かれた、継承先のクラスを「サブクラス」と言う。
「基本クラス」「基底クラス」「ベースクラス」「親クラス」「継承元クラス」「派生元クラス」と呼ばれることもあるが、Javaでは「スーパークラス」と呼ばれることが多い。
ちなみに「super」と聞くと「超」というイメージがあり、「サブクラスの方がスーパークラスより機能が多いのになぜ?」という疑問が浮かぶが、これは誤解である。
英語では、「super」が「上」、「sub」が「下」という意味を持つ。クラスの継承関係を図に書くとき、必ず継承元は上に、派生先は下に書く。「アップキャスト」「ダウンキャスト」と共に、「継承は上から下へと行われる」という概念を元に名付けられたと言える。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// SubClassのインスタンスを作成し、オーバーライドされた
// メソッドを呼び出します。
SuperClass superClass = new SubClass();
superClass.overridable();
// SubClass#overridable()
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* オーバーライドされるメソッド。
*/
public void overridable()
{
System.out.println( "SuperClass#overridable()" );
}
}
/**
* サブクラス。
*/
// ↓これがスーパークラス。
class SubClass extends SuperClass
{
/**
* オーバーライドするメソッド。
*/
public void overridable()
{
System.out.println( "SubClass#overridable()" );
}
}
public class Sample
{
public static void main( String[] args )
{
// SubClassのインスタンスを作成し、オーバーライドされた
// メソッドを呼び出します。
SuperClass superClass = new SubClass();
superClass.overridable();
// SubClass#overridable()
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* オーバーライドされるメソッド。
*/
public void overridable()
{
System.out.println( "SuperClass#overridable()" );
}
}
/**
* サブクラス。
*/
// ↓これがスーパークラス。
class SubClass extends SuperClass
{
/**
* オーバーライドするメソッド。
*/
public void overridable()
{
System.out.println( "SubClass#overridable()" );
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // SubClassのインスタンスを作成し、オーバーライドされた // メソッドを呼び出します。 SuperClass superClass = new SubClass(); superClass.overridable(); // SubClass#overridable() } } /** * スーパークラス。 */ class SuperClass { /** * オーバーライドされるメソッド。 */ public void overridable() { System.out.println( "SuperClass#overridable()" ); } } /** * サブクラス。 */ // ↓これがスーパークラス。 class SubClass extends SuperClass { /** * オーバーライドするメソッド。 */ public void overridable() { System.out.println( "SubClass#overridable()" ); } }
「みだし」に含まれているページ
「解説」に含まれているページ
- =演算子
- ArrayStoreException
- catch
- ClassCastException
- doGet
- doPost
- Error
- Exception
- extends
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWriter
- HttpServlet
- IllegalArgumentException
- IndexOutOfBoundsException
- InputStream
- InputStreamReader
- IOException
- Object
- OutputStream
- OutputStreamWriter
- Reader
- RuntimeException
- super
- superフィールド
- superメソッド
- Throwable
- Writer
- アップキャスト
- インスタンス
- インターフェイス
- オブジェクト
- オーバーライド
- キャスト
- コンポジション
- サブクラス
- シグネチャー
- スーパークラス
- ダウンキャスト
- デフォルトコンストラクタ
- バイト入力ストリーム
- バイト出力ストリーム
- ポリモーフィズム
- 匿名クラス
- 委譲
- 子クラス
- 抽象クラス
- 文字入力ストリーム
- 文字出力ストリーム
- 継承
- 親クラス
- 集約