什么是接口?接口和抽象类的区别?

1、接口

接口就是比“抽象类"还“抽象”的“抽象类”, 可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。接口是完全面向规范的,规定了-批类具有的公共方法规范。

  • 从接口的实现者角度看,接口定义了可以向外部提供的服务。
  • 从接口的调用者角度看,接口定义了实现者能提供那些服务。

接口是两个模块之间通信的标准,通信的规范。如果能把你要设计的模块之间的接口定义好,就相当于完成了系统的设计大纲,剩下的就是添砖加瓦的具体实现了。大家在工作以后,做系统时往往就是使用“面向接口”的思想来设计系统。

接口和实现类不是父子关系,是实现规则的关系。比如:我定义一-个接口Runnable , Car实现它就能在地上跑, Train实现它也能在地上跑,飞机实现它也能在地上跑。就是说,如果它是交通工具,就定能跑,但是一定要实现Runnable接口。

接口就是一种契约、协议

声明格式:

[访问修饰符号] interface 接口name [extends 父接口1,父接口2] {
	常量定义:
	方法定义:
}

1、访问修饰符:只能是public 或者默认
2、extends:接口支持多继承
3、接口中的属性只能是常量,默认就是public static finnal
4、接口中的方法默认是public abstract


要点:

1、接口不能实例化对象 可以用来声明引用变量的类型
2、一个类实现一个接口,那么必须实现这个接口中定义的所有方法,并且只能是public
3、jdk1.7以及之前 接口中只能有方法的定义 jdk1.8之后可以有default(虚拟扩展方法)和静态方法

2、 接口和抽象类的区别
接口抽象类
不考虑java8中default方法的情况下,接口中是没有实现代码的实现抽象类中可以有普通成员方法 ,并且可以定义变量
接口中的方法修饰符号 只能是public抽象类中的抽象方法可以有public,protected,default
接口中没有构造方法可以有构造方法

接口和抽象类如何选择:

1、当我们需要一组规范的方法的时候,我们就可以用接口,在具体的业务中,来对接口进行实现,能达到以不变应对万变,多变的需求的情况我们只需要改变对应的实现类 。
2、如果多个实现类中有者相同可以复用的代码 这个时候就可以在实现类和接口之间,添加一个抽象类,把公共的代码抽出在抽象类中。然后要求不同实现过程的 子类可以重写抽象类中的方法,来完成各自的业务。

  • 32
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值