ホームページ >Java >&#&チュートリアル >Java ポリモーフィックな親クラスがサブクラスのメソッドを呼び出す

Java ポリモーフィックな親クラスがサブクラスのメソッドを呼び出す

黄舟
黄舟オリジナル
2017-08-13 09:43:233433ブラウズ

package test1;

Javaポリモーフィズムの親クラスがサブクラスのメソッドを呼び出す方法

//多态的体现
import javax.print.attribute.standard.RequestingUserName;
import java.util.Scanner;
public class testfather {
public static void main(String[] args)
{
Animal a  = new fish();   //父类对象被赋以子类类型
/*Animal a;
fish b = new fish b;
a= b
;      //向上转型,不丢失精度
a.talk();*/       //可达到相同效果
a.talk();      //fish覆写animal talk方法
Animal c = new bird();
//C.talk2();    //不能实现,因为animal中没有此方法,必须向下转型
   bird b = (bird)c;    //如果不进行转换,父类无法看到子类新扩充的方法
   b.talk2();
}
}
class Animal
{
public void talk()    //如果父类方法不想被覆写,可改为public 
static
 void talk()
{
System.out.println("walk");
}
}
class fish extends Animal
{
public void talk()
{
System.out.println("swim");
}
}
class bird extends Animal
{
public void talk()
{
System.out.println("fly");
}
public void talk2()//父类中没有此方法,调用必须进行强制转换,向下转型。
{
System.out.println("i am a bird");
}
}

以上がJava ポリモーフィックな親クラスがサブクラスのメソッドを呼び出すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。