継承
日本語 | 遺伝 |
英語 | inheritance |
ふりがな | けいしょう |
フリガナ | ケイショウ |
あるクラスの機能を受け継いだクラスを作る機能。
extendsを使用して、すでに存在するクラスにメソッドやフィールドを追加したクラスを作ることができる。これが「継承」という機能である。
継承の「親」、つまり元々あるクラスを「スーパークラス」と呼ぶ。また、継承の「子」、つまり新たに作ったクラスを「サブクラス」と呼ぶ。
継承は、元々あるクラスに機能を継ぎ足すことができるが、その方法で使用するとクラスの肥大化等の問題があるため、単なる機能追加のために継承を使用するべきではない。
継承の真骨頂は、メソッドをオーバーライドすることで「ポリモーフィズム」を実現することにある。
extendsを使用して、すでに存在するクラスにメソッドやフィールドを追加したクラスを作ることができる。これが「継承」という機能である。
継承の「親」、つまり元々あるクラスを「スーパークラス」と呼ぶ。また、継承の「子」、つまり新たに作ったクラスを「サブクラス」と呼ぶ。
継承は、元々あるクラスに機能を継ぎ足すことができるが、その方法で使用するとクラスの肥大化等の問題があるため、単なる機能追加のために継承を使用するべきではない。
継承の真骨頂は、メソッドをオーバーライドすることで「ポリモーフィズム」を実現することにある。
参考サイト
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// SubClassのインスタンスを作成します。
SubClass subClass = new SubClass();
subClass.calledFromSub();
// SuperClass#calledFromSub()
// サブクラスでも、スーパークラスのメソッドを
// 呼ぶことができます。
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* ただの出力用メソッド。
*/
public void calledFromSub()
{
System.out.println( "SuperClass#calledFromSub()" );
}
}
/**
* サブクラス。
*/
class SubClass extends SuperClass
{
// 実装はなし。
}
public class Sample
{
public static void main( String[] args )
{
// SubClassのインスタンスを作成します。
SubClass subClass = new SubClass();
subClass.calledFromSub();
// SuperClass#calledFromSub()
// サブクラスでも、スーパークラスのメソッドを
// 呼ぶことができます。
}
}
/**
* スーパークラス。
*/
class SuperClass
{
/**
* ただの出力用メソッド。
*/
public void calledFromSub()
{
System.out.println( "SuperClass#calledFromSub()" );
}
}
/**
* サブクラス。
*/
class SubClass extends SuperClass
{
// 実装はなし。
}
// Sample.java public class Sample { public static void main( String[] args ) { // SubClassのインスタンスを作成します。 SubClass subClass = new SubClass(); subClass.calledFromSub(); // SuperClass#calledFromSub() // サブクラスでも、スーパークラスのメソッドを // 呼ぶことができます。 } } /** * スーパークラス。 */ class SuperClass { /** * ただの出力用メソッド。 */ public void calledFromSub() { System.out.println( "SuperClass#calledFromSub()" ); } } /** * サブクラス。 */ class SubClass extends SuperClass { // 実装はなし。 }