Java基礎(18)之類名作爲形參和返回值

1. 新參和返回值

1.1 類名作爲形成和返回值

在這裏插入圖片描述
代碼示例:

方法的形參是抽象類名

抽象動物類:
定義了一個抽象的eat方法
在這裏插入圖片描述
動物的操作類:
創建一個useAnimal方法,它的形參是抽象類Animal
在這裏插入圖片描述
測試類:
在這裏插入圖片描述
創建操作類對象,並調用方法:
調用方法時,提示我們需要的是Animal類型的實參。往下看
在這裏插入圖片描述
在操作類中,看到Animal a 也能調用方法,說明a是一個實例對象。
但是Animal是一個抽象類,並不能實例化,這裏只能使用多態的形式,所以需要的是它的子類對象,創建它的子類對象然後傳遞過來。
當子類傳遞過來時就形成這樣:Animal a = new 子類;
在這裏插入圖片描述
那麼就創建一個Animal的子類Cat,並繼承它:
在這裏插入圖片描述
繼續寫測試類:
通過多態的形式將創建對象a,然後將a傳遞給useAnimal方法,
形成:Animal a = new Cat();
然後調用eat方法輸出“貓喫魚”
在這裏插入圖片描述
運行結果:
在這裏插入圖片描述

方法的返回值是抽象類名

繼續編寫操作類:
這裏將void改爲Animal,所以返回的是Animal對象,但是Animal對象是抽象類,不能直接實例化。
所以我們利用多態的形式,返回它的子類。
Animal a = new Cat();

  • 可以得出結論:
    方法的返回值是抽象類名,其實返回的是該抽象類的子類對象

在這裏插入圖片描述
在測試類中調用:
ao.getAnimal返回的是Animal的子類對象Cat,
就形成了:Animal a2 = new Cat();
在這裏插入圖片描述
運行結果:
和將抽象類做爲新參的結果是一樣的。
在這裏插入圖片描述

1.2 接口名作爲新參和返回值

將接口名作爲新參和返回值,其實是和抽象類一樣的,
只不過接口將子類變成了實現類。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章