<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天若有情

    到教堂懺悔,愿主安撫我罪惡的心靈......
    posts - 4, comments - 35, trackbacks - 0, articles - 24

    接口回調(接口引用)及類的引用

    Posted on 2008-08-07 01:49 freedoom 閱讀(577) 評論(0)  編輯  收藏 所屬分類: JAVA技術
     

    package dao;

    class Father{

        void method(){

           System.out.println("Father method called.....");

        }

    }

    class Son extends Father{

        void method(){

           System.out.println("Son method called.....");

        }

    }

    publicclass TestAbstract{

        publicstaticvoid main(String args[]){

           Father f;

           Son son=new Son();

           f=son;

    //     Father f=new Son();

           f.method();

        }

    }

    為什么可以用Father f=new Son();

    因為Father的范圍比Son的范圍大,編輯器會幫助我們將子類的類型的自動轉換為父類的類型,這即是父類的引用,子類的對象,

    注意:這里子類Son已經重寫了父類的method()方法,所以當運行f.method();時調用的是子類的方法,所以這里可以得出兩點結論,即:

    Father f=new Son();運行時:

    1.)是父類的引用,子類的對象,實際運行時調用的是被子類重寫的方法。

    2.)子類重寫父類的方法,只能重寫父類公共的、非靜態的方法。

    同理)

    以下是接口引用的問題:注意其中的區別。

    接口引用

    static void Main(string[] args)
    {
        IBankAccount venusAccount = 
    new SaverAccount();
        IBankAccount jupiterAccount = 
    new CurrentAccount();
        venusAccount.PayIn(200);
        jupiterAccount.PayIn(500);
        Console.WriteLine(venusAccount.ToString());
        jupiterAccount.PayIn(400);
        jupiterAccount.Withdraw(500);
        jupiterAccount.Withdraw(100);
        Console.WriteLine(jupiterAccount.ToString());

    }


      請注意開頭兩句,我們把它們聲明為IBankAccount(這是一個接口)引用的方式,而沒有聲明為類的引用,為什么呢?因為,這樣我們就可以讓它指向執行這個接口的任何類的實例了,比較靈活。這也就是接口回調。但這也有個缺點,如果我們要執行不屬于接口的方法,比如這里重載的ToString()方法,就要先把接口的引用強制轉換成合適的類型了。

    接口回調的例子:

    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

    主站蜘蛛池模板: 2021在线观看视频精品免费| 91青青青国产在观免费影视| 国产黄色免费观看| 久久国产乱子伦免费精品| 亚洲精品国产精品乱码不卡√ | 女人18毛片a级毛片免费视频| 精品久久洲久久久久护士免费| 亚洲精品无码乱码成人| 永久免费无码日韩视频| 曰曰鲁夜夜免费播放视频 | 四虎影视精品永久免费| 亚洲AV天天做在线观看| 老司机午夜免费视频| 无码乱肉视频免费大全合集| 亚洲丰满熟女一区二区v| 免费无码又爽又刺激一高潮| 国产精品深夜福利免费观看| 4444亚洲国产成人精品| 国产免费内射又粗又爽密桃视频| 午夜视频在线在免费| 免费人成网上在线观看| 手机看片久久国产免费| 亚洲综合偷自成人网第页色| 久久99精品视免费看| 国产成人精品亚洲精品| 真人无码作爱免费视频| 最近中文字幕mv免费高清视频7| 亚洲影院在线观看| 两个人看的www免费| 亚洲另类少妇17p| 美女视频黄a视频全免费网站一区| 亚洲av无码天堂一区二区三区| 亚洲国产日韩a在线播放| 免费看韩国黄a片在线观看| 亚洲高清中文字幕综合网| 精品久久久久成人码免费动漫| 亚洲gay片在线gv网站| 亚洲男同帅GAY片在线观看| 成在线人视频免费视频| 亚洲中文字幕久久精品无码喷水| 免费看美女午夜大片|