成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

java - 在這兒并沒有申明FU為Demo的父類,為什么還是可以繼承重寫呢

瀏覽:112日期:2024-01-06 09:28:30

問題描述

//此處用了匿名內(nèi)中類 abstract class Fu {public abstract void sleep(); } class Demo { public void fun(){//創(chuàng)建匿名對象,可以使用匿名類中類 new Fu() { public void sleep(){System.out.println('睡覺');} public void eat(){System.out.println('吃飯');}} .sleep(); //創(chuàng)建匿名對象 new Fu() { public void sleep(){System.out.println('睡覺');} public void eat(){System.out.println('吃飯');}} .eat(); } } class Demonmnbl1 {public static void main(String[] args) { Demo de1 = new Demo(); de1.fun();} }

問題解答

回答1:

又不是Demo重寫,是里面的兩個(gè)匿名子類重寫的。。Demo只是負(fù)責(zé)調(diào)用

回答2:

Demo并沒有繼承抽象類。 只是包含了Fu類的實(shí)例。

沒用過JAVA,抽象類怎么可能被實(shí)例化?這才是值得奇怪的地方。

我感覺 new Fu()應(yīng)該就相當(dāng)于 something = new Fu(). 一個(gè)繼承了Fu的匿名對象。這也就是OOP里的多態(tài)。

回答3:

定義匿名內(nèi)部類的時(shí)候,JVM會自動給你生成一個(gè)類,說是匿名,其實(shí)對于JVM來說,當(dāng)然不是匿名,JVM知道這個(gè)類,而用戶不知道,用戶無法訪問這個(gè)類,這個(gè)類是你new的類或接口的子類或?qū)崿F(xiàn)類,它的引用是父類或接口。

標(biāo)簽: java