java 多態 ---父類調用子類方法


package test1;
//多態的體現
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");
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM