Java 匿名内部类和匿名对象

匿名内部类:没有类名的类就称作为匿名内部类。
匿名内部类的好处:简化书写。
匿名内部类的使用前提:必须存在继承或者实现关系才能使用。
匿名内部类一般是用于实参。

abstract class Animal02{
  	public abstract Animal02 run();
 	public abstract void sleep();
 	protected abstract void bite();
}
class Outer{
 	public void print(){
  //需求: 在方法内部定义一个类继承Animal类,然后调用run方法与sleep()。
   /*
  //局部内部类
  class Dog extends Animal{
    public void run(){
    System.out.println("狗在跑..");
   }
   public void sleep(){
    System.out.println("狗趴在睁开眼睛睡..");
   }
  }
    //创建对象
  Dog d = new Dog();
  d.run(); 
  d.sleep();
  */ 
  //匿名内部类 :匿名内部类只是没有类名,其他的一概成员都是具备的。
  // 匿名内部类与Animal是继承 的关系。  目前是创建Animal子类的对象. 
 Animal02 a = new Animal(){  //多态
     //匿名内部的成员 
   public Animal run(){
    		System.out.println("狗在跑..");
	    return this;
   }
   public void sleep(){
    		System.out.println("狗趴在睁开眼睛睡..");
   }
   //特有的方法
   public void bite(){
    		System.out.println("狗在咬人..");
   	}
   };
  	a.bite();
  	a.run();
  	a.sleep();
   }
}
public class Demo6 
{
 	public static void main(String[] args) 
 	{
  	//System.out.println("Hello World!");
    		Outer outer = new Outer();
  		outer.print();
  	}
}

匿名对象: 没有引用类型变量指向的对象就称作为匿名对象。
匿名对象要注意的细节:

  1. 一般不会给匿名对象的属性赋值,因为永远都没法获取到。
  2. 两个匿名对象永远都不可能是同一个对象。
    匿名对象好处:简化书写。
    匿名对象的应用场景:
  3. 如果调用一个对象的方法一次时,然后这个对象就不再使用,那么这时候可以使用匿名对象。
  4. 可以作为实参调用一个函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值