365bet官网是多少

Java 为什么要有接口?什么时候用接口?

发布时间 2025-07-21 10:15:08 作者 admin 阅读 1097

本人考虑了这个问题很久,在网上也看过很多资料,这里讲一下我的理解。

1. 多继承

C++ 中有多继承的概念,即一个类可以有多个直接父类。这么做很灵活,但是如果两个父类中有同名方法或者同名的函数,就比较麻烦了(指定访问域)。Java 的一个好处是只允许一个类有一个直接父类,(部分原因是)考虑到弥补没有多继承带来的一些问题,有了接口。

2. 接口与类

接口可以看作是一种特殊的类,接口与类的重要区别是,接口中的方法必须要重写(接口中类方法默认抽象),而类不同,子类即便是不重写父类的方法,也是没有问题的,甚至可以通过 super 关键字,调用父类的方法。这也意味着,接口比起类要更加规范,要用接口这个“父类”,必须要重写其中的方法。

另一方面,接口是相对简单的,只用提供接口方法即可,实现的逻辑可以交给继承了接口的类来完成。另外,接口比抽象类要好,原因也在于接口允许多继承。

试想,一个婴儿类,如果继承了手接口、脚接口等,最后实现的就会是一个健康的婴儿,要修改各个部分的功能也比较简单(增加接口方法,或者修改类中方法逻辑即可),如果是继承一个 Human 类,如果父类中有一部分出现问题,子类就会出问题,而且人类的所有功能糅杂在一个类中,功能也不好划分。接口则提供了一种功能规范,实现了这种规范就能够实现一种功能,并且逻辑是继承了接口的类负责实现的,降低了接口本身出错的可能性。

同属某一父类的子类间的差异性(什么时候用接口?)

接口较之于类,可以实现更低层次上的抽象。例如动物类,作为父类,可以有一个 move 方法(所有动物都可以移动),但是对于同属于动物的猪、狮子类,如何从功能上区别这两个类?一个办法是在原父类和子类之间再加上三个类:肉食动物类、草食动物类、杂食动物类,每个动物类都有选择地去继承这几个类。

但是这样做会有问题,因为继承级数的增加,方法名、变量名都有可能出现同名的情况,原因在于父类的某些字段或者属性,对子类来说有可能是不可见的,子类实现时,无法对父类的情况完全可见,有可能造成冲突。

接口则不同,接口想要被继承,其中的接口方法一定是要暴露出来的,子类也必须要全部实现这些方法,只要按照规范来做事,就可以避免出错的情况。继续分析上面的例子,如果把肉食动物类、草食动物类、杂食动物类改为三个接口,狮子继承肉食动物接口,实现其中的 hunt (捕猎)方法;猪实现杂食动物接口,实现其中的方法;这样就可以让狮子类和猪类同属于动物类(最高级别抽象),但又分别实现了不同的接口(不同的食性,低一级的抽象)。

总结

接口的好处有很多,用它的理由也有很多,需要在实战中去感受。我认为从抽象的级别来理解接口与类是比较好的办法。

相关推荐

DMC:鬼泣 全图文详细流程攻略 通关技巧

DMC:鬼泣 全图文详细流程攻略 通关技巧 MISSION1:发现 【剧情梗概】 光头佬企图用金钱控制世界,但心中仍有一个焦虑,那就是叛徒斯巴达之子

07-07 分类 best365官网登录入口

如何办cmcc web 套餐

如何办理CMCC Web套餐 办理CMCC Web套餐的步骤包括:选择合适的套餐、准备所需材料、前往营业厅或在线办理、激活套餐、使用和管理套餐。其中

07-03 分类 365bet官网是多少

梦幻西游飞升降多少级

梦幻西游里面人物飞升降15级,人物完成飞升任务找月宫(9,34)吴刚确认飞升(降级)时,是会降低人物15级,飞升之后等级允许达到的上限提高到15

07-04 分类 365bet网页版

拍照时如何设置照片比例

不同画幅比例取景范围、视觉感受不一样,您可以根据需要选择画幅比例拍摄自己满意的照片。相机默认画幅为4:3,可以选择1:1,全屏幕,16:9。

07-04 分类 365bet网页版

双鱼座代表的水果是什么

在饮食方面,最不能缺少的就是水果,不但含有丰富的营养,而且还能够促进消化。现在水果的种类越来越多,人们可以通过各种途径购买自己

07-04 分类 365bet官网是多少

工商银行卡到期办新卡和激活

银行卡一般有5年或者10年的时间限制,在截止日期之前的3~5个月,银行会用短信的方式提示客户该银行卡快到期了要更换新卡(换卡不换号),当

07-08 分类 best365官网登录入口