java向上轉型發生的時機知識點詳解
public static void main(String[] args) {//父類引用 引用了 子類引用所引用的對象Animal animal = new Cat();;//向上轉型}2、方法傳參
把一個Cat的子類傳給一個Animal類型的父類,這里也是能發生向上轉型的。
public class Test extends TestDemo { public static void func(Animal animal) { } public static void main(String[] args) {//父類引用 引用了 子類引用所引用的對象Cat cat = new Cat();func(cat); }}3、方法返回
func方法的返回類型是Animal,但返回的確是一個Cat類型,這里也是發生了向上轉型。
public class Test extends TestDemo { public static Animal func() {Cat cat = new Cat();return cat; } public static void main(String[] args) {Animal animal = func(); }}
實例擴展:
package multistate;public class Human { public void sleep() {System.out.println('Human sleep..'); } public static void main(String[] args) {Human h = new Male();// 向上轉型h.sleep();Male m = new Male();// 干嘛要向上轉型m.sleep();// h.speak();此方法不能編譯,報錯說Human類沒有此方法 }}class Male extends Human { @Override public void sleep() {System.out.println('Male sleep..'); } public void speak() {System.out.println('I am Male'); }}class Female extends Human { @Override public void sleep() {System.out.println('Female sleep..'); } public void speak() {System.out.println('I am Female'); }}
到此這篇關于java向上轉型發生的時機知識點詳解的文章就介紹到這了,更多相關java向上轉型發生的時機內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
