第三次学JAVA再学不好就吃翔(part37)--接口概述
生活随笔
收集整理的這篇文章主要介紹了
第三次学JAVA再学不好就吃翔(part37)--接口概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
文章目錄
- 面向對象
- 接口
- 接口的概述及其特點
- 接口的成員特點
面向對象
接口
接口的概述及其特點
- 接口的概述
- 從狹義的角度講就是指java中的interface
- 從廣義的角度講,對外提供的規則都是接口
- 接口的特點
- 接口用關鍵字interface表示:interface 接口名 {}
- 類實現接口用implements表示:class 類名 implements 接口名 {}
- 接口不能實例化
- 接口的子類可以是抽象類,也可以是具體類,是具體類時,需要重寫所有抽象方法
- 接口是公共的,它的成員變量和成員方法都是公共的(public)
- 舉個例子
輸出:
Print接口的成員特點
- 成員變量
- 只能是常量,并且是靜態的且公共的,默認修飾符:public static final
- 構造方法
- 接口沒有構造方法
- 成員方法
- 接口中的方法都是抽象的,默認修飾符:public abstract
- 舉個例子(成員變量默認為常量)
報錯信息:
---------- javac ---------- InterfaceTest1.java:4: 錯誤: 找不到符號i.print();^符號: 方法 print()位置: 類型為Inter的變量 i InterfaceTest1.java:16: 錯誤: 無法為最終變量num分配值num = 20;^ 2 個錯誤Output completed (3 sec consumed) - Normal Termination因為在接口中,我們的成員變量會被默認為常量,所以,我們無法改變,如果改變它就會報錯。上述代碼就相當于:
class InterfaceTest1 {public static void main(String[] args) {Inter i = new Demo(); //父類引用指向子類對象i.print();} }interface Inter {final int num = 10;}class Demo implements Inter {public void print() {num = 20;System.out.println(num);} }- 舉個例子(成員變量是靜態的,可以通過類名調用)
輸出:
10同時接口是公共的,所以在成員變量前我們可以加上public關鍵字(public static final int num = 10; ),這三個關鍵字的擺放沒有順序,可以隨意給出。
- 舉個例子(接口中沒有構造方法)
報錯:
---------- javac ---------- InterfaceTest1.java:14: 錯誤: 找不到符號publi Inter() {};^符號: 類 publi位置: 接口 Inter InterfaceTest1.java:14: 錯誤: 接口抽象方法不能帶有主體publi Inter() {};^ InterfaceTest1.java:18: 錯誤: Demo不是抽象的, 并且未覆蓋Inter中的抽象方法Inter() class Demo implements Inter { ^ 3 個錯誤Output completed (3 sec consumed) - Normal Termination接口中沒有構造方法。但是它的子類Demo在初始化時,要調用父類的構造方法,這是怎么實現的呢?
實際上,接口Inter并不能算是Demo真正的父親,最多是養父。Inter的子類Demo有自己真正的父類,這個例子中,我們的Demo子類繼承的是Object類,Object類才是Demo類真正的父類,Demo類初始化時,調用的父類構造方法是Object類的構造方法。
上面的代碼也可以這樣寫:
class InterfaceTest1 {public static void main(String[] args) {} }interface Inter {static final int num = 10;publi Inter() {};}class Demo extends Object implements Inter {public void print() {System.out.println(num);}public Demo() {super();} }- 舉個例子(接口中的成員方法只能是抽象的)
報錯:
---------- javac ---------- InterfaceTest1.java:9: 錯誤: 接口抽象方法不能帶有主體public void print() {^ 1 個錯誤Output completed (3 sec consumed) - Normal Termination總結
以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part37)--接口概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疑似上海雇主14万月薪请保姆 家政公司称
- 下一篇: 500 余家苹果授权专营店入驻饿了么,购