j**a 匿名类

时间:2013.09.03 发布人:shan**17395

j**a 匿名类

已解决问题

谷歌shan**17395用户在2013.09.03提交了关于“楚氏春秋j**a 匿名类”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-09-11T13:35:41。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,谢了,下次有事儿别忘了找我 !

希望以下的回答,能够帮助你。

第1个回答

用户名:硕107115  

abstractclassAnimal{
publicabstractv看导掌查组息振甚跳买针oidcry();
}

classTestCry{
publicvoidtestCry(Animalanimal){
animal.cry();
}
}

publiccl并离论容突政防真买波assExample{
publicstaticvoidmain(String[]args){

TestCrycry=newTestCry();
cry.testCry(newAnimal(){
publicvoidcr来自y(){
System.out.println("Catiscrying!");
}
});
cry.testCry(newAnimal(){
publicvoidcry(){
System.out.pr问答intln("Dogiscrying!");
}
});
//省略其他
}
}

先看段伪代码
abstractclas能并sFather(){
.
}

publicclassTest{
Fatherf1=newFather(){.}//这染背谓识随规松想里就是有个匿名**类
岁还激香之苗修组}
一般来说,ne写w一个对象时小括号后应该是分号,也就是new出对象该语句就结束了。
但是出现匿名**类就不一样,小括号后跟的是硫任单只元率负老草读大括号,大括号中是该new出对象的具体的实现方法。
因为我们知道,一个抽象类是不能直接new的,必须先有实现类了我们才能new出它的实现类。
上面的伪代码就是表示new的是Father的实现类,这个实现类是个匿名**类。
其实拆分上面的匿名**类可为
classSonOneextendsFather{
//这里的代码和上面匿名**类,大括号中的代码是一劳求杀优确步司难罗某企样的
}
publicclassTest{
Fatherf1做斗推她接身才革规言=newSonOne();
}