【Java】匿名内部类

测试类

package cn.meituan.anonymous;

/* 测试类
/*匿名内部类 
 * 前提:存在一个类或者接口,
 *  就是将子类和创建子类对象的过程合二为一了
 *
 *
 *作用;如果接口的实现类只用一次接口(用完就不再用了,这样占内存不建议,可以用匿名内部类避免)
 * 匿名内部类格式:
 * 	接口名/抽象类名 父类变量 = new 接口名/类名(){
 * 		重写方法
 * }
 * MyInterface my = new MyInterface() {//类似于多态的方式进行创建 并对接口的抽象方法进行重写
			public void method1() {
				System.out.println("接口实现类");
			}
 *
 */
public class Test {
	public static void main(String[] args) {
		// 快捷键自动生成匿名内部类 :new 接口名 alt+/生成  记住
		
		// 匿名内部类就是不用再创建接口实现类(少创建一个实现类)
		MyInterface my = new MyInterface() {//类似于多态的方式进行创建 并对接口的抽象方法进行重写
			// 这里的new MyInterface()相当于接口的 实现类对象(并不是一个接口对象),因为不知到接口的实现类名字所以用接口名进行代替,
			// 并且对接口中的抽象方法进行重写。

			@Override
			public void method1() {
				System.out.println("接口实现类");
			}

			@Override
			public void method() {
				System.out.println("接口实现类1");

			}
		};
		//调用方法
		my.method();
		my.method1();
		
		/*
		 * MyInterfaceImpl myInterfaceImpl = new MyInterfaceImpl();
		 * //正常实现接口是用(接口不能创建对象)创建接口实现类对象
		 *调用方法
		 * myInterfaceImpl.method(); myInterfaceImpl.method1();
		 * // 快捷键自动生成匿名内部类 :new 接口名 alt+/生成  记住
		 */
		MyInterface my1 = new MyInterface() {//类似于多态的方式进行创建 并对接口的抽象方法进行重写
			// new MyInterface()相当于接口的 实现类对象,因为不知到接口的实现类名字所以用接口名进行代替,
			// 并且对接口中的抽象方法进行重写。

			@Override
			public void method1() {
				System.out.println("第二个接口实现类");
			}

			@Override
			public void method() {
				System.out.println("第二个接口实现类1");

			}
		};
		//调用方法
		my1.method();
		my1.method1();
	}
}

 抽象类

package cn.meituan.anonymous;

public interface MyInterface {
	//抽象方法
	void method();
	void method1();

}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mxin5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值