Javaクラスの継承について
February 4, 2009,
tags:
java
継承
なんか授業が暇すぎるので、ちょっと違うことをしてみますた。
継承したクラスをインスタンスするときの変数の型にスーパークラスの型名を指定すると、継承したサブクラスのメソッドは使えないんですね。
こんな感じでソースを書くとエラーでました。
class Msg
{
String name = "John Smith";
void msg(){
System.out.println("Here is Msg.msg");
}
}
class Msg1 extends Msg
{
void msg1(){
System.out.println("Here is Msg1.msg");
}
}
public class Ex0903e
{
public static void main(String[] args){
Msg m = new Msg1();
System.out.println(m.name);
m.msg();
m1.msg();
}
}
実行結果
Ex0903e.java:22: シンボルを見つけられません。
シンボル: メソッド msg1()
場所 : Msg の クラス
m.msg1();
ということで、スーパークラスの型を指定するとスーパークラスしか使えないんですね。
勉強になりました。