day11-匿名内部类和匿名对象的区别

This commit is contained in:
2026-07-28 11:52:43 +08:00
parent b574ec00d5
commit ab1a4ed32b
@@ -1,4 +1,5 @@
package com.inmind.inner_class03; package com.inmind.inner_class03;
/* /*
匿名内部类:定义在方法中的一个没有名字的类(属于局部内部类的一种),它的本质是一个父类或者接口的子类或实现类 匿名内部类:定义在方法中的一个没有名字的类(属于局部内部类的一种),它的本质是一个父类或者接口的子类或实现类
匿名内部类的定义: 匿名内部类的定义:
@@ -59,7 +60,44 @@ public class Demo04 {
} }
}; };
nc.mehtod(); nc.mehtod();
System.out.println("-------------------以下是匿名对象和匿名内部类的介绍----------------");
//匿名内部类和匿名对象的区别
//new Scanner(System.in).nextInt();//匿名对象
//匿名对象(包含了匿名内部类的定义)
new MyInterface(){//当前的大括号里面就是接口实现类的定义(匿名内部类)
//当前既是匿名内部类,也是MyInterface的实现类
@Override
public void method() {
System.out.println("匿名内部类【实现类】实现了抽象方法method");
}
}.method();
System.out.println("-----------------------------------");
//匿名内部类·书写起来很麻烦,直接使用快捷方式:new 接口名|抽象父类名|普通类名 弹出{....}
MyInterface myInterface2 = new MyInterface() {
@Override
public void method() {
System.out.println("匿名内部类重写了method方法");
}
};
myInterface2.method();
AbstraceClass ac1 = new AbstraceClass() {
@Override
public void method() {
}
};
NomalClass nc1 = new NomalClass(){
int i;
String name;
@Override
public void mehtod() {
super.mehtod();
}
};
} }
} }