Java 内部类——匿名内部类

匿名内部类是没有名称的内部类。
在Java中调用某个方法时,
如果该方法的"参数是接口类型",除了可以"传入一个接口实现类",
还可以"使用实现接口的匿名内部类作为参数""在匿名内部类中直接完成方法的实现。"

匿名内部类使用场景:"作为方法的参数传递"

方案一:  
传统实现方式:
	1.编写实现类
	2.实现类中重写抽象方法
	3.创建实现类对象
	4.将实现类对象作为方法的参数传递    Animal_419 a=new dog_419()






方案二:(传统方法的步骤优化方案)
匿名内部类:没有名字的特殊局部内部类,匿名内部类使用场景,
作为方法的参数传递。

格式1new 类名 或  接口名()
	{
	重写方法
	}          //  将传统方法1,2,3步骤合并了。  这个格式1整体就是作为参数的









方案一(传统法)  :"如果该方法的参数是接口类型,可以传入一个接口实现类"

public class text5_419 
{
	public static void main(String[] args)
	{
			dog_419 dog=new dog_419();       //创建实现类对象dog
			useAnimal(dog);                  /	useAnimal()   此句实现useAnimal()方法,"但传参是接口类型的,而接口是不能直接出创建对象",所以必须搞一个实现类对象才行
	
  	 }	
	
	
			public static void useAnimal(Animal_419 a)      //useAnimal()方法,是对Animal_419接口的使用,传递是Animal_419 a=new dog_419(),多态的使用
		    {
				a.eat();
			}
}




package sk;
public interface Animal_419 {      //  定义接口
		public abstract void eat();//定义eat()抽象方法	
}





package sk;
public class dog_419  implements Animal_419
{            //dog_419类是Animal_419接口的实现类

		public void eat()                      //重写Animal_419接口里的eat()方法
		{
		System.out.println("狗吃肉");
		}
}



方案二(匿名内部类法): 如果该方法的参数是接口类型,还可以"使用实现接口的匿名内部类作为参数",在匿名内部类中直接完成方法的实现。

public class text5_419 
{
		public static void main(String[] args)   //匿名内部类法
		{
	
		 useAnimal(
					 new Animal_419()
						{
							 public void eat()
							 {
							 System.out.println("狗吃肉");
							 }
						}
				);

	 }
							//new Animal_419(){}   此句是创造一个Animal_419实现类出来,并且通过new关键字直接创出了实现类的对象, 因为该实现类创建出来没有名字,所以叫匿名实现类
							//public void eat(){System.out.println("狗吃肉");} 在匿名实现类中重写方法
		
	
	
		public static void useAnimal(Animal_419 a)//useAnimal()方法,是对Animal_419接口的使用
		{
			a.eat();
		}

}




package sk;
public interface Animal_419 {      //  定义接口
		public abstract void eat();//定义eat()抽象方法	
}



在这里插入图片描述



`
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值