//此处用了匿名内中类
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();
}
}
Il n'est pas réécrit par Demo, mais par les deux sous-classes anonymes à l'intérieur. . Demo est uniquement responsable de l'appel
La démo n'hérite pas des classes abstraites. Contient uniquement des instances de la classe Fu.
N'ayant jamais utilisé JAVA, comment instancier une classe abstraite ? C'est ce qui est étrange.
Je pense que new Fu() devrait être équivalent à quelque chose = new Fu() Un objet anonyme qui hérite de Fu. C'est du polymorphisme en POO.
Lorsque vous définissez une classe interne anonyme, la JVM générera automatiquement une classe pour vous, qui est dite anonyme. En fait, pour la JVM, bien sûr elle n'est pas anonyme. l'utilisateur ne le fait pas et l'utilisateur ne peut pas accéder à cette classe. Cette classe A est une sous-classe ou une classe d'implémentation de votre nouvelle classe ou interface, et sa référence est la classe ou l'interface parent.