Java语言中的函数式接口以及抽象类与接口区别

函数式接口的定义:

如果接口内只定义一个抽象方法,则该接口称为函数式接口,如下例:

package qaq;
@FunctionalInterface
public interface IFather {
void eat();
}

该接口中只有eat的抽象方法,所以该接口成为函数式接口。
注意:1、可以使用@FunctionalInterface 注解来验证一个接口是不是函数式接口,Java8中java.lang.Runnable、java.util.Comparator都是函数式接口;
2、函数式接口中可以定义多个常量、多个默认方法和多个静态方法,但只能定义一个抽象方法及多个java.lang.Object中的public方法,如下例:

package qaq;
@FunctionalInterface
public interface IFather {
	 void eat();
	 public static void sleep() {
	 }//可以定义多个静态方法
	 public default void sleep1() {
	 }//可以定义多个默认方法
}	 
@FunctionalInterface
interface IMammal {
	void move();
	boolean equals(Object obj);
}//可以定义多个java.lang.Object中的public方法


抽象类与接口区别

**抽象类可以有构造方法但是不能创建新对象**
instanceof运算符
instanceof运算符用于判断该运算符前面引用类型变量指向的对象是否是后面类,或者其子类、接口实现类创建的对象。如果是则返回true,否则返回false,其使用格式如下:
引用类型变量 instanceof (类、抽象类或接口

package suris;
public class Son1 extends Father {
	public void son() {
	Son1 son1 =new Son1();
	System.out.println(son1 instanceof Son1);//判断前面对象是否是后面类创建的对象
	 System.out.println(son1 instanceof IFather);//判断前面对象是否是后面接口创建的对象
	 System.out.println(son1 instanceof Father);//判断前面对象是否是后面抽象类创建的对象
	 }
}	 

instanceof运算符用于强制类型转换之前检查对象的真实类型以避免类型转换异常,从而提高代码健壮性。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值