Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1609字,纯文字阅读大概需要3分钟。
内容图文
![Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口](/upload/InfoBanner/zyjiaocheng/616/dd4cb3c68ff74284bb42d35fae7c32fc.jpg)
初次看到Spring的ApplicationContext
,引发如下疑问:
Question
:为什么java中的类是单继承的,接口却可以多继承?
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
...
}
(1) java中的类是单继承的
如果一个类继承了两个类,但是这两个类中有相同的方法,那么子类调用,无法确定应该调用哪个方法。
(2) 接口可以多继承
因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类(也就是子类覆盖的方法)的方法(不存在歧义),因此即使继承的两个接口中的方法名是一样的,最终调用的时候也都是调用实现类中的那个方法,不会产生歧义;
而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此从接口的变量是来看也是可以通过的。
interface 接口名称 {
public static final 全局常量;
public abstract 抽象方法;
}
一个子类可以同时实现多个接口,那么实际上就摆脱了Java中的类单继承局限。
Question
:interface可以implement多个interface,也可以extends多个interface,有什么区别?
其实这个问题提的本身就有不对。因为:实现多个接口指的是:子类实现多个接口,而不是说接口实现多个接口!
class 子类 implement 接口A, 接口B,..{
}
In a word
:Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口。
note
:
- 接口extends接口可以不实现父接口中的方法,可以声明自己的新方法;
- 类实现接口时,一定要实现接口中声明的方法,如果接口中没有定义抽象方法则不需要;但是要注意,类实现了一个接口A,如果B是A的父接口,且B中有抽象方法,则该类必须实现A和B中的所有抽象方法;
- 抽象类实现接口,可以不实现接口中的抽象方法;
内容总结
以上是互联网集市为您收集整理的Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口全部内容,希望文章能够帮你解决Java中的类是单继承的,但接口可以多继承,类也可以实现多个接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。