使用方法引用的使用场景--通过super来引用成员方法

通过super来引用成员方法

如果存在继承关系,当Lambda中需要使用super调用时,也可以使用方法引用来优化Lambda表达式

// 定义一个父类
public class Animal {
	// 定义一个成员方法 交流的方法
	public void talk() {
		System.out.println("hello 我是一只动物");
	}
}

// 定义一个函数式接口
@Functionlinterface
public interface Meet {
	// 定义一个抽象方法 见面的方法
	void meet();
}

// 定义一个子类
public class Cat extends Anmial {
	@Override
	public void talk() {
		System.out.println("hello 我是一只猫");
	}
	// 定义一个方法 方法的参数传递一个函数式接口Meet
	public void meet(Meet m){
		m.meet();
	}

	// 定义一个成员方法  沟通的方法
	public void commun() {
		// 传统的Lambda表达式写法
		meet(() -> {
			// 创建父类的对象
			// 调用父类的方法
			Animal animal = new Animal();
			animal.talk();
		});
		// 使用父类当中的方法,直接用super来调用
		meet(() -> supr.talk());
		/*
			使用super关键字来引用成员方法
			super已经存在的
			父类当中的成员方法talk已经存在的
			可以使用supr引用父类当中的成员方法
		*/
		// 优化结果
		meet(super::talk);
	}
	public static void main(String[] args) {
		new Cat().commun();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值