第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

下面的內(nèi)容不明白,Animal不是接口嗎,為什么可以定義方法?

下面的內(nèi)容不明白,Animal不是接口嗎,為什么可以定義方法?

UYOU 2022-05-19 12:15:10
class Zoo{private class Tiger implements Animal{public void eat(){System.out.println("tiger eat");}public void sleep(){System.out.println("tiger sleep");}}Animal getAnimal()//這里不明白,Animal不是接口么,怎么可以定義方法?{return new Animal()//還有這里,接口不是不能實(shí)例化么??{public void eat(){System.out.println("animal eat");}public void sleep(){System.out.println("animal sleep");}};}}class Test{public static void main(String[] args){Zoo z=new Zoo();Animal an=z.getAnimal();an.eat();an.sleep();}}interface Animal{void eat();void sleep();}
查看完整描述

4 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊


package baidu; class Zoo {    private class Tiger implements Animal {        public void eat() {            System.out.println("tiger eat");        }         public void sleep() {            System.out.println("tiger sleep");        }    }     Animal getAnimal()// 這里不明白,Animal不是接口么,怎么可以定義方法?    {        return new Animal()// 還有這里,接口不是不能實(shí)例化么?? 你說的沒有錯(cuò),確實(shí)不能實(shí)例化,但是這里是匿名類,效果相當(dāng)于代碼2        {            public void eat() {                System.out.println("animal eat");            }             public void sleep() {                System.out.println("animal sleep");            }        };    }    //代碼2    Animal getAnimal2(){        class AnimalTest implements Animal{             @Override            public void eat() {                // TODO Auto-generated method stub                             }             @Override            public void sleep() {                // TODO Auto-generated method stub                             }        }        return new AnimalTest();    }} class Test {    public static void main(String[] args) {        Zoo z = new Zoo();        Animal an = z.getAnimal();        an.eat();        an.sleep();    }} interface Animal {    void eat();     void sleep();}



查看完整回答
反對(duì) 回復(fù) 2022-05-23
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

返回的不是Animal,其實(shí)是Animal的匿名子類,因?yàn)橐呀?jīng)把Animal借口中的抽閑函數(shù)具體化了。


Interface A{  void show();}class Test{    pubic static void main(String[] args)    {        Interface a=null;        //a=new Interface(); 這句是錯(cuò)誤的,接口不能實(shí)例化        a=new Interface(){           pulibc static void show()           {             System.out.println("我其實(shí)是接口的實(shí)現(xiàn)子類,不是接口");           }        };        a.show();//正確    }}



查看完整回答
反對(duì) 回復(fù) 2022-05-23
?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

Animal getAnimal(),接口可以作為返回類型,指定返回的類型必須是實(shí)現(xiàn)當(dāng)前接口的類.

new Animal(){

    void eat() {

    }

    void sleep() {

    }

}

這是一個(gè)匿名類,只是這個(gè)類沒有類名,但它實(shí)現(xiàn)了Animal接口,

如果換個(gè)寫法你可能就明白了:


...Animal getAnimal() {    return new A();}...class implements Animal {    public void eat(){    System.out.println("animal eat");    }                   public void sleep(){    System.out.println("animal sleep");    }}



查看完整回答
反對(duì) 回復(fù) 2022-05-23
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

Animal getAnimal()//這里不明白,Animal不是接口么,怎么可以定義方法?
接口不能直接實(shí)例化,但是可以做方法的返回類型

return new Animal()//還有這里,接口不是不能實(shí)例化么??
{
。。。。}
這里相當(dāng)于一個(gè)匿名內(nèi)部類,為Animal的一個(gè)子類,所以可以實(shí)例化

查看完整回答
反對(duì) 回復(fù) 2022-05-23
  • 4 回答
  • 0 關(guān)注
  • 235 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)