Java筆記2(多型和介面)
阿新 • • 發佈:2018-11-19
1.多型(一種現象)
繼承是多型的實現基礎
多型:即物件的多種形態
1.引用多型
父類的引用可以指向本類物件
父類的引用可以指向子類物件
這就是引用多型
2.方法多型
建立本類物件時,呼叫的方法為本來的方法
建立子類物件時,呼叫的方法為子類重寫的方法或繼承的方法
二.介面
什麼是介面呢???
介面可以理解為一種特殊的類,由全域性常量和公共的抽象方法所組成
如果說類是一種具體實現體,那麼介面就是某些類所要遵循的規範,介面只是一種規範,不關心類的內部資料和方法實現的細節,它只規定類中必須有什麼東西,是用來約束類的。用interface關鍵字定義介面
要注意的是介面一般都是用來被繼承,被實現的。修飾符一般用public,不用protected和private修飾介面
介面中全是常量和抽象方法
問題來了,怎麼去使用介面呢??
一個類可以實現一個或多個介面,實現介面使用implements 關鍵字。。。我們知道Java中一個類只能繼承一個父類,這樣是不是很不靈活,那麼就可以通過介面進行補充
這裡需要 注意的是繼承和介面的實現順序是不能互換的,也就是必須先繼承再實現介面,還有就是實現介面時,同樣也要實現接口裡的方法
下面看一個介面實現的例子
//介面 package ClassDemo1;View Codepublic interface IWatch { public void watch(); } //Woker類 package ClassDemo1; public class Woker implements IWatch{ @Override public void watch() { System.out.println("我們都有一雙明亮的眼睛"); } } //Student類 package ClassDemo1; public classStudent extends Person implements IWatch{ public void say() { System.out.println("學生會說不同的語言"); } public void watch() { System.out.println("我們也有一雙明亮的眼睛"); } } //測試類、 package ClassDemo1; public class Main { public static void main(String[] args) { IWatch i=new Woker(); //用介面引用指向實現介面的物件 IWatch j=new Student(); i.watch(); j.watch(); } }
另外附上測試結果