JAVA内部类:匿名内部类
比较常用到的内部类就是匿名内部类,它是局部内部类的一种
定义匿名内部类有两个含义
1. 临时定义某一个类的子类(匿名内部类先决条件:要么有继承关系,要么实现接口)
2. 定义后即刻创建定个子类的对象。
一句话:
匿名内部类就是将 子类的定义、new对象、方法调用一步完成
(或将接口的实现类的定义 new对象、重写方法、调用方法一步完成)
public class Fu{
public abstract void eat(); //抽象方法
}
//用匿名内部类实现 一步到位继承、实例化、重写方法、调用方法
new Fu(){
public void eat(){
System.out.println("吃了");
}
}; //到此,实际上是已经创建了一个匿名子类对象了,这个子类对象已经重写了父类的抽象方法
new Fu(){
public void eat(){
System.out.println("吃了");
}
}.eat();
//不但创建了一个子类来继承父类、重写方法,还实例化了一个匿名对象,并用该对象调用了方法。
---------------如果按普通的操作方法---------------
首先定义一个子类来继承父类:
public class Zi extends Fu{
//重写父类抽象方法
public void eat(){
System.out.println("吃了");
}
}
第二步,在main方法中实例化子类,并调用方法:
Zi z = new Zi();
z.eat();
总结:匿名内部类可以大量节省代码量,但使用匿名内部类有两个前提条件:必须要继承关系或有实现接口的关系。
浙公网安备 33010602011771号