Java基礎知識:抽象類與抽象函數
- interface是一種特殊的class
- 所有的成員變量都是public static final;
- 接口是為了方便類的調用
- 一個類如果要去實現某個接口,要加 implements 接口名
Java基礎知識:抽象類與抽象函數
- abstract class
- 抽象類不能制造對象,但是可以定義變量,賦給這個變量的一定是他非抽象子類的對象;
- 抽象類中的抽象函數沒有函數體,例如:public abstract void move();
- 一個抽象類可以沒有任何抽象方法,所有的方法都有方法體,但是整個類是抽象的。
- 抽象類中所有的的抽象函數必需子類的覆蓋,而非抽象函數不需要覆蓋。因為子類會繼承父類的函數,如果不去覆蓋繼承來的抽象函數,那麼子類就含有抽象函數,含有抽象函數的類必須要聲明為抽象類。
- 設計這樣的抽象類主要是為了防止制造它的對象出來。
Java(OOP)程序的設計原則
- 避免代碼復制。解決方案:函數、父類;
- 封裝。盡量private每個類的成員變量,用操作封裝數據,減少類與類之間成員變量的直接調用,而是調用method,降低耦合;
- 可擴展性最大化。盡量使用框架+數據的模式,可以使用容器,避免硬編碼。避免以後功能擴展的時候做大規模的代碼改造。
Java中的類都是單根結構,所有的類都歸結於Object類,所有的類都是Object的子類。Object類中有一個to String函數,所以在其他類中編寫to String函數時會出現override的提示。
對於設計一個具有復雜框架的程序來說,降低耦合的一個重要方法是 讓函數都定義在它所針對的那個對象的類裡,讓那個類能夠自己解決自己的問題。