図Proo5_1_㏛cは「クラスの継承: toStringメソッドの継承と使い方」を説明するためのプログラム例である。このプログラムの最後にコメントで実行結果が示されている。このプログラムにはBook、ProBook、Proo5_1のクラスがある。BookがProBookに継承されている。toStringメソッドがオーバーライドされている。
toStringメソッドはそのオブジェクト独特の文字列を返す特別のメソッドである(必ずしも独特でなくてもよい)。修飾子としてpublic Stringが付き、returnで文字列を返す。
その他は、通常のメソッドと同じように親クラスから子クラスへ継承できる。
図Proo5_1_srcについて
7,8行 BookのtoStringメソッドである。
15,16行 子クラスProBookのtoStringメソッドである。superを使って親クラスのtoStringを利用している。
20行 親クラスBookのオブジェクトaを生成している。
21行 printlnメソッドは引数として文字列を要求するので、aは文字列に変換される。そのとき、aのtoStringが機能して文字列をprintlnに返している。その結果として、27行の文字列が表示されている。
22行 bは子クラスProBookのオブジェクトになる。
23行 bの文字列が表示される。結果は28行にある。
以下にソースを付加する。
/*クラスの継承 toStringメソッドの使い方*/ class Book { String title;int page; Book(String title, int page){ this.title=title;this.page=page; } public String toString(){return "[title="+ title+"](p="+page+")";} } class ProBook extends Book{ int category; ProBook(String title, int page, int category){ super(title,page);this.category=category; } public String toString(){return super.toString()+ "[category="+category+"]";} } class Proo5_1{ public static void main(String[] args){ Book a=new Book("Introduction to Java",500); System.out.println(a); ProBook b=new ProBook("Introduction to C",300,1); System.out.println(b); } } /* [title=Introduction to Java](p=500) [title=Introduction to C](p=300)[category=1] */