接口和多態


20145217 《Java程序設計》第4周學習總結(2)

教材學習內容總結

上章講過繼承,但繼承不能亂用,悠閑先考慮接口而不是繼承。本章即使對接口應用的論述,探討如何改進和設計,了解繼承、接口與多態的用於不用之處。

7.1接口

類要操作接口,必須使用implements關鍵字。一是操作接口中定義方法,二是再度將該方法標示為abstract。
課本中用ocean.java的寫法上讓我們體會了繼承和接口的區別。ocean.java用接口來寫如下:

  • 1.Ocean.java

package ocean;
javascript
public class Ocean {
public static void main(String[] args) {
doSwim(new Anemonefish("尼莫"));
doSwim(new Shark("爛泥"));
doSwim(new Humen("姬絲汀"));
doSwim(new Submarine("黃色一號"));
}
static void doSwim(Swimmer swimmer){
swimmer.swim();
}
}
  • 2.Swimmer.java

package ocean;
public interface Swimmer {
public abstract void swim();
}
  • 3.Submarine.java、Anemonefish.java、Humen.java和Shark.java(類似不一一給出)

package ocean;
public class Submarine implements Swimmer {
private String name;
public Submarine(String name){
    this.name=name;
}
public String getName(){
    return name;
}
@Override
public void swim(){
    System.out.printf("潛水艇%s潛行%n", name);
}
}
  • 4.Fish.java

package ocean;
public abstract class Fish implements Swimmer {
protected String name;
public Fish(String name){
    this.name=name;
}
public String getName(){
    return name;
}
@Override
public abstract void swim();
}

四部分打包后才會運行成功,運行結果如下:

運用接口能夠滿足需求變化,子類不能有多個父類但是程序可以有多個接口,因此面對即可以飛又可以游泳的飛魚可以更好地解決。

6.2語法細節

  • 1.接口的默認為public abstract。

  • 2.在撰寫java程序時,經常會有臨時繼承某個類或操作某個接口並建立實力的需要。由於這類子類或借口操作類只是用一次,不需要為這些類定義名稱,這時可以使用匿名內部淚來解決。

  • 3.enum:定義枚舉常數。

上傳git:

教材學習中的問題和解決過程

教材這部分是對程序設計邏輯化詳解,需要多加練習,很多東西都是在敲完代碼,運行程序成功后懂得的。

代碼調試中的問題和解決過程

教材中的很多代碼都是一半,真正實現需要自己補充好,在這方面也花掉了我大部分時間,但是總而言之很有收獲。這倆節內容真心難,到現在也沒學懂。現在學習還是比較迷茫的,只敲代碼真的只能做到復制和讀懂層面,並不能完全掌握,看來要自己解決一些問題才能真正掌握起來吧。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第三周 300/600 2/6 20/50
第四周 300/900 2/8 16/66

參考資料


免責聲明!

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



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