一、匿名对象的介绍
理解:我们创建的对象,没有显式的赋给一个变量名
例如:new Person(),不赋值给一个变量。
没有对象名称的对象就是匿名对象。 即栈内存中没有名字,而堆内存中有对象。
匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被GC回收。
只使用一次的对象可以通过匿名对象的方式完成,这一点在以后的开发中将经常使用到
二、使用举例
举例:
public class Demo01 extends Person{
public static void main(String[] args) {
// 创建完对象之后可以直接调用方法
System.out.println(new Person().print());
}
}
class Person{
String name;
public boolean print(){
System.out.println(name);
return false;
}
}
三、匿名对象使用抽象类
public class Children{
public static void method1(Children obj){
System.out.println("Childer");
}
public static void method1(Person p){
p.eat();
}
public static void main(String[] args) {
// 匿名方法调用
method1(new Children());
//创建了你名字类的对象
Person p = new Person() {
@Override
public void eat() {
}
};
// 匿名子类的匿名对象
new Person(){
@Override
public void eat() {
}
};
}
}
abstract class Person{
public abstract void eat();
}