介面一些常用用法總結,以及在android監聽中的用法

來源:互聯網
上載者:User

 

常用用法:回調方法介面,向上轉型動態綁定,常量介面。

回調方法介面:

 

Java代碼 

public interface ICallback { 

  public void   func(); 

 

public class Caller { 

  ICallback callback; 

  public void doCallback() { 

    callback.func(); 

  } 

 

  public void setCallback(ICallback callback) { 

    this.callback = callback; 

  } 

 

 

public class MainClass { 

  public MainClass() { 

  } 

 

  public static void main(String[] args) { 

    Caller caller = new Caller(); 

    caller.setCallback(new ICallback () { 

      public void func() { 

        System.out.println("dosth"); 

      } 

    }); 

    caller.doCallback(); 

  } 

 

向上轉型:

 

Java代碼 

interface People{ 

void peopleList(); 

class Student implements People{ 

public void peopleList(){ 

System.out.println("I’m a student."); 

class Teacher implements People{ 

public void peopleList(){ 

System.out.println("I’m a teacher."); 

public class Example{ 

public static void main(String args[]){ 

People a;             //聲明介面變數 

a=new Student();      //執行個體化,介面變數中存放對象的引用 

a.peopleList();        //介面回調 

a=new Teacher();     //執行個體化,介面變數中存放對象的引用 

a.peopleList();       //介面回調 

結果: 

I’m a student. 

I’m a teacher. 

 

 

 

常量介面就不舉例了。舉個回調介面在Android中的例子。

執行個體(對於Android介面上Button點擊事件監聽的類比):

1.定義介面

 

 

Java代碼 

public interface OnClickListener { 

 

    public void OnClick(Button b); 

 

 

 

 

2. 定義Button

Java代碼 

public class Button { 

 

  OnClickListener listener; 

 

   public void click() { 

 

    listener.OnClick(this); 

 

   } 

 

   public void setOnClickListener(OnClickListener listener) { 

 

    this.listener = listener; 

 

  } 

 

 

3. 將介面對象OnClickListener 賦給Button的介面成員

Java代碼 

public class MyActivity  extends Activity{ 

 

      Button button = new Button(); 

 

      button.setOnClickListener(new OnClickListener(){ 

 

             public void OnClick(Button b) { 

 

                 System.out.println("clicked"); 

 

       }    

 

    }); 

 

      } 

 

 

5進位空間,

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.