匿名内部类
匿名内部类可以使代码更加简洁,可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类,这样方便又简洁。
- 匿名内部类的特点就是不用再构造一个类,对比一下:
//定义一个动物类
class Animals{
public void eat(){
System.out.println("动物要吃东西");
}
}
//实现类
public class Demo {
public static void main(String[] args) {
//正常调用
Dog dog = new Dog();
dog.eat();
//利用匿名内部类
new Animals(){
//重写
public void eat(){
System.out.println("狗要吃肉");
}
}.eat();
}
}
//正常的继承狗类重写一下
class Dog extends Animals{
@Override
public void eat() {
System.out.println("狗要吃肉");
}
}
- 当要用匿名内部类调用多个方法时:
//定义一个人类
class People{
public void eat(){
System.out.println("人要吃东西");
}
public void run(){
System.out.println("人要跑");
}
}
public class Demo1 {
public static void main(String[] args) {
//利用匿名内部类调用多种方法!!!
People p = new People(){
public void eat(){
System.out.println("男人要吃肉");
}
public void run(){
System.out.println("男人要跑");
}
};
p.eat();
p.run();
//不同的地方就是实例化一个People类给p
}
}
- 虽然要实例化一个People类给p,但是比构建一个men类要简洁。