http://ift.tt/2FjLMnI
什么是匿名内部类
- 没有名字的内部类
- 因为没有名字,所以只能使用一次,通常用作简化代码
- 实现抽象类的前提:必须继承一个父类或者实现一个接口
不使用内部匿名类的代码
classperson{
public void eat(){
System.out.println("this is person eat");
}
}
class dog extends person{
@Override
public void eat(){
System.out.println("this is dog eat");
}
}
public class AnonymousClass{
public static void main(String[]args){
person pgone=new dog();
pgone.eat();
}
}
运行完毕之结果:this is dog eat
可以看到,上面的代码就被使用了一次,还要写个类去继承它,太麻烦了,因此匿名内部了就出现了
使用匿名内部类的代码
abstract class person{
public abstract void eat();
}
public class AnonymousClass{
public static void main(String[]args){
//内部匿名类的实现
person pgone=new person(){
@Override
public void eat(){
System.out.println("this is eat");
}
};
pgone.eat();
}
}
匿名内部类在接口上的实现
interface person{
public void eat();
}
public class AnonymousClass{
public static void main(String[]args){
//内部匿名类的实现
person pgone=new person(){
@Override
public void eat(){
System.out.println("thisiseat");
}
};
pgone.eat();
}
}
通过上面的例子可以看出,只要是抽象类或者接口 ,都可以实现内部匿名类
The post java 匿名内部类 appeared first on cole.
http://ift.tt/eA8V8J Java January 09, 2018 at 07:14PM
评论
发表评论