//此處用了匿名內(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();
}
}
3 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
Demo并沒有繼承抽象類。 只是包含了Fu類的實例。
沒用過JAVA,抽象類怎么可能被實例化?這才是值得奇怪的地方。
我感覺 new Fu()應(yīng)該就相當(dāng)于 something = new Fu(). 一個繼承了Fu的匿名對象。這也就是OOP里的多態(tài)。

富國滬深
TA貢獻(xiàn)1790條經(jīng)驗 獲得超9個贊
定義匿名內(nèi)部類的時候,JVM會自動給你生成一個類,說是匿名,其實對于JVM來說,當(dāng)然不是匿名,JVM知道這個類,而用戶不知道,用戶無法訪問這個類,這個類是你new的類或接口的子類或?qū)崿F(xiàn)類,它的引用是父類或接口。
添加回答
舉報
0/150
提交
取消