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中文网其他相关文章!