Java高级语法笔记-接口(interface)
生活随笔
收集整理的這篇文章主要介紹了
Java高级语法笔记-接口(interface)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接口interface
接口和抽象類寫法是一樣的(只定義一個聲明)
interface的使用:定義一個類,implements這個接口。(對比abstract class,extends)
interface不能實例化(和抽象類差不多)
要用implements的那個類去實例。
接口的含義:
接口是一種設計方法,跟C/C++里的回調類似。 函數指針
舉例:有一個工具類AfSort,它為我們提供一個函數,用于對任意類型進行排序。
AfSort.doSort(objs,...)
例如,我們有一個Student數組,可以用AfSort類來幫助我們完成排序
注:
1.interface里的函數聲明是public的。
2.interface里一般不寫成員變量,如果有成員變量,則該變量是public static final的
接口的本質上是一種回調機制(Callback)
回調:別人給我們提供一個函數,我們調用他,他在內部調用我的函數
Example.java package my;public class Example implements Compare {@Overridepublic int compare(Object a, Object b){return 0;}}
Sort.java package my;public class Sort {public static void doSort(Object[] objs,Compare c) {int N = objs.length;for(int i=0; i < N -1; i++){int pos = i;for(int j=i+1; j< N; j++){// 找到最小值的那個元素的下標// 比較大小if( c.compare(objs[j] ,objs[pos]) < 0){pos = j;}}// 把最小值調換到最前面if(pos != i){Object temp = objs[pos]; objs[pos] = objs[i];objs[i] = temp;}}} }
Student.java package my;public class Student {int id;String name;String phone;public Student(int id,String name,String phone) {this.id=id;this.name=name;this.phone=phone;}@Overridepublic String toString(){return "("+id+","+name+","+phone+")";} }
接口和抽象類寫法是一樣的(只定義一個聲明)
interface的使用:定義一個類,implements這個接口。(對比abstract class,extends)
interface不能實例化(和抽象類差不多)
要用implements的那個類去實例。
接口的含義:
接口是一種設計方法,跟C/C++里的回調類似。 函數指針
舉例:有一個工具類AfSort,它為我們提供一個函數,用于對任意類型進行排序。
AfSort.doSort(objs,...)
例如,我們有一個Student數組,可以用AfSort類來幫助我們完成排序
注:
1.interface里的函數聲明是public的。
2.interface里一般不寫成員變量,如果有成員變量,則該變量是public static final的
接口的本質上是一種回調機制(Callback)
回調:別人給我們提供一個函數,我們調用他,他在內部調用我的函數
一個類,可以implements多個接口
代碼如下
Compare.java
package my;public interface Compare {//比較兩個對象a,b的大小//若a>b返回1,若a<b返回-1int compare(Object a,Object b); }Example.java package my;public class Example implements Compare {@Overridepublic int compare(Object a, Object b){return 0;}}
Sort.java package my;public class Sort {public static void doSort(Object[] objs,Compare c) {int N = objs.length;for(int i=0; i < N -1; i++){int pos = i;for(int j=i+1; j< N; j++){// 找到最小值的那個元素的下標// 比較大小if( c.compare(objs[j] ,objs[pos]) < 0){pos = j;}}// 把最小值調換到最前面if(pos != i){Object temp = objs[pos]; objs[pos] = objs[i];objs[i] = temp;}}} }
Student.java package my;public class Student {int id;String name;String phone;public Student(int id,String name,String phone) {this.id=id;this.name=name;this.phone=phone;}@Overridepublic String toString(){return "("+id+","+name+","+phone+")";} }
總結
以上是生活随笔為你收集整理的Java高级语法笔记-接口(interface)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt可执行程序写入版本信息
- 下一篇: php书签源码,OneNav简约PHP导