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 サイトの他の関連記事を参照してください。