Rumah > Soal Jawab > teks badan
//此处用了匿名内中类
abstract class Fu
{
public abstract void sleep();
}
class Demo
{
public void fun()
{
//创建匿名对象,可以使用匿名类中类
new Fu()
{
public void sleep()
{
System.out.println("睡觉");
}
public void eat()
{
System.out.println("吃饭");
}
}
.sleep();
//创建匿名对象
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();
}
}
天蓬老师2017-04-18 10:55:47
Ia tidak ditulis semula oleh Demo, tetapi oleh dua subkelas tanpa nama di dalamnya. . Demo hanya bertanggungjawab untuk memanggil
阿神2017-04-18 10:55:47
Demo tidak mewarisi kelas abstrak. Hanya mengandungi contoh kelas Fu.
Setelah tidak pernah menggunakan JAVA, bagaimanakah kelas abstrak boleh dijadikan instantiated? Ini yang peliknya.
Saya rasa Fu() baharu sepatutnya bersamaan dengan sesuatu = Fu baharu() Objek tanpa nama yang mewarisi Fu. Ini adalah polimorfisme dalam OOP.
怪我咯2017-04-18 10:55:47
Apabila anda mentakrifkan kelas dalaman tanpa nama, JVM akan menjana kelas secara automatik untuk anda, yang dikatakan tanpa nama Sebenarnya, untuk JVM, sudah tentu ia bukan tanpa nama, tetapi kelas ini pengguna tidak, dan pengguna tidak boleh mengakses kelas ini Kelas A ini ialah subkelas atau kelas pelaksanaan kelas atau antara muka baharu anda, dan rujukannya ialah kelas induk atau antara muka.