【Java】接口interface的介绍与编译器的方法绑定机制

本文探讨了Java接口与抽象类的区别,强调接口在多继承中的优势及限制。接口中的方法默认为public,成员变量为public static(可选final)。文章还解析了编译器如何进行方法绑定,包括编译器绑定的三个阶段,以及运行期绑定的多态特性。
摘要由CSDN通过智能技术生成

Java接口是一个强大的工具,从另一个更加安全和方便的角度解决了在java中无法继承多个类的需求。在C++中虽然可以多重继承,但是不可避免的会存在菱形继承或者其他问题。虽然C++也是利用了其他方式可以避免和解决多重继承出现的问题,让我们还是可以使用多重继承,但是很多方面肯定会有不同程度的限制。最主要的时候如果项目比较庞大的话,你使用了多重继承而且你没有采取有效措施,那就很难调试和定位问题。

那Java在接口在设计中其和普通的类或者抽象类有什么不同那,接口中的方法和成员变量与普通类有什么不同的吗,或者说它可以定义成员变量吗,需要定义成员变量吗。这里我们将对以上问题进行一个整体的总结。

1:接口和普通类差别很明显,我们就不再说了,接口和抽象类的区别如下:

  a:接口本身可以继承多个接口,但是抽象类因为其本身其实也是一种类,所以只能继承一个类。这时候有人会问,如果接口中存在多个相同方法,这时候一个接口继承多个接口会导致什么情况。答案是不会影响实际场景的使用,但是还是在某些方面会有相应限制,这会在下面细谈。例子:

interface One{
	public void outStr();//同名方法
}
interface Two{
	public void outStr();//同名方法
	public void outStr1();
}
interface Three extends One, Two{
}
//具体实现
class Impl implements Three{
	public void outStr1() {
		System.out.println("outStr1");
	}
	public void outStr() {
		System.out.println("outStr"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值