サブクラス
日本語 | 下クラス |
英語 | subclass |
ふりがな | さぶくらす |
フリガナ | サブクラス |
継承関係にあるクラスにおいて、継承先となるクラス。
文法的には、extendsの左側に書かれたクラス。
ただし、直接の子でなく、2代以上後の継承先クラスもサブクラスと呼ぶことがある。
サブクラスに対して、extendsの右側に書かれた、継承元のクラスを「スーパークラス」と言う。
「派生クラス」「子クラス」「継承先クラス」「派生先クラス」と呼ばれることもあるが、Javaでは「サブクラス」と呼ばれることが多い。
ちなみに「sub」と聞くと「予備」というイメージがあり、「サブクラスの方がスーパークラスより機能が多いのになぜ?」という疑問が浮かぶが、これは誤解である。
英語では、「super」が「上」、「sub」が「下」という意味を持つ。クラスの継承関係を図に書くとき、必ず継承元は上に、派生先は下に書く。「アップキャスト」「ダウンキャスト」と共に、「継承は上から下へと行われる」という概念を元に名付けられたと言える。
文法的には、extendsの左側に書かれたクラス。
ただし、直接の子でなく、2代以上後の継承先クラスもサブクラスと呼ぶことがある。
サブクラスに対して、extendsの右側に書かれた、継承元のクラスを「スーパークラス」と言う。
「派生クラス」「子クラス」「継承先クラス」「派生先クラス」と呼ばれることもあるが、Javaでは「サブクラス」と呼ばれることが多い。
ちなみに「sub」と聞くと「予備」というイメージがあり、「サブクラスの方がスーパークラスより機能が多いのになぜ?」という疑問が浮かぶが、これは誤解である。
英語では、「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()" ); } }
「みだし」に含まれているページ
「解説」に含まれているページ
- =演算子
- Applet
- ArithmeticException
- ArrayIndexOutOfBoundsException
- ArrayList
- ArrayStoreException
- AssertionError
- BufferedInputStream
- BufferedOutputStream
- BufferedReader
- BufferedWriter
- ByteArrayInputStream
- ByteArrayOutputStream
- C++言語
- Calendar
- catch
- CharArrayReader
- CharArrayWriter
- ClassCastException
- clone
- Cloneable
- DataInputStream
- DataOutputStream
- Error
- Exception
- ExceptionInInitializerError
- extends
- FileInputStream
- FileOutputStream
- FileReader
- FileWriter
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWriter
- finalクラス
- Frame
- Graphics
- GregorianCalendar
- HashMap
- HttpServlet
- IllegalArgumentException
- IndexOutOfBoundsException
- InputStream
- InputStreamReader
- instanceof
- InterruptedException
- IOException
- java.sql.Date
- JFrame
- LineNumberInputStream
- LineNumberReader
- Logger
- NoClassDefFoundError
- NoSuchElementException
- NullPointerException
- NumberFormatException
- Object
- ObjectInputStream
- ObjectOutputStream
- OutOfMemoryError
- OutputStream
- OutputStreamWriter
- PipedInputStream
- PipedOutputStream
- PipedReader
- PipedWriter
- PrintStream
- PrintWriter
- Properties
- protected
- protectedクラス
- protectedフィールド
- protectedメソッド
- PushbackInputStream
- PushbackReader
- Reader
- Rss4j
- Runnable
- RuntimeException
- SequenceInputStream
- StackOverflowError
- StringBufferInputStream
- StringIndexOutOfBoundsException
- StringReader
- StringWriter
- super
- superメソッド
- TestCase
- Thread
- Throwable
- throws
- Timestamp
- toString
- Writer
- アサーション
- アップキャスト
- アプレット
- インターフェイス
- オーバーライド
- カスタムタグライブラリ
- キャスト
- クラスメンバ
- コレクションフレームワーク
- コンクリートクラス
- コンテナクラス
- コンポジション
- サブクラス
- サーブレット
- シンタックス
- ストリーム
- スーパーインターフェイス
- スーパークラス
- セマンティクス
- ダウンキャスト
- テストファースト
- バイト入力ストリーム
- バイト出力ストリーム
- フォーマット
- ポリモーフィズム
- 例外
- 再描画
- 匿名クラス
- 変数宣言
- 委譲
- 子クラス
- 抽象クラス
- 拡張for
- 描画
- 文字入力ストリーム
- 文字出力ストリーム
- 木構造
- 派生クラス
- 継承
- 親クラス
- 集約
「サンプルプログラムとか」に含まれているページ
- abstract
- assert
- AssertionError
- catch
- extends
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWriter
- finalクラス
- finalメソッド
- InputStream
- OutputStream
- println
- privateメソッド
- protectedクラス
- protectedフィールド
- protectedメソッド
- Reader
- super
- superフィールド
- superメソッド
- TestCase
- throw
- Throwable
- throws
- Writer
- XSS
- アクセスコントロール
- オーバーライド
- クラスメンバ
- クラス修飾子
- サブクラス
- シンタックス
- スーパークラス
- セマンティクス
- ダウンキャスト
- ブロックします
- ポリモーフィズム
- 子クラス
- 抽象クラス
- 抽象メソッド
- 派生クラス
- 継承
- 親クラス