一、前言
在前面介绍了一些有关于内部类的知识点后,本文将介绍内部类中最重要的知识点:匿名内部类‘
二、概述
- 匿名内部类 :是内部类的简化写法
- 包含内容:继承\实现;方法; 创建对象
三、格式
new 类名或接口名(){
public void show(){
···
}
};
四、实例
1.代码及操作
package newTest2;
public interface swim {
public abstract void swim();
}
package newTest2;
public class test1 {
public static void main(String[] args) {
new swim(){
@Override
public void swim() {
System.out.println("自由泳");
}
}.swim();
}
}
2.测试代码
五、 匿名内部类的特点
- 定义一个没有名字的内部类
- 这个类实现了父类,或者父类接口
- 匿名内部类会创建这个没有名字的类的对象
六、应用实例
通常在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递
interface Swim {
public abstract void swimming();
}
public class test {
public static void main(String[] args) {
// 普通方式传入对象
// 创建实现类对象
Student s = new Student();
goSwimming(s);
// 匿名内部类使用场景:作为方法参数传递
Swim s3 = new Swim() {
@Override
public void swimming() {
System.out.println("蝶泳...");
}
};
// 传入匿名内部类
goSwimming(s3);
// 完美方案: 一步到位
goSwimming(new Swim() {
public void swimming() {
System.out.println("大学生, 蛙泳...");
}
});
goSwimming(new Swim() {
public void swimming() {
System.out.println("小学生, 自由泳...");
}
});
}
// 定义一个方法,模拟请一些人去游泳
public static void goSwimming(Swim s) {
s.swimming();
}
}
七、结语
匿名内部类的知识点很重要,如果想要运用在实际项目中还需要多加练习,如果有任何的问题欢迎留言评论