抽象类、接口的区别和相似点(一)

简介: 抽象类、接口的区别和相似点(一)

🪂 接口的实现和方法引用

  接口的实现: 接口无法实现接口但是可以继承接口或者类,类使用implements关键字实现接口,一个类可以实现多个接口使用逗号隔开。接口中定义了抽象方法,实现接口的类必须重写这个接口中的所有抽象方法(包括通过extends继承来的抽象方法),否则这个类就必须定义成抽象类

image.png就近引用、类优先、接口冲突原则:

 ① 如果一个类的超类和超类的超类中定义了一个同名变量或者方法的话,由于就近原则这个类中引用的就是超类的变量或者方法,如果子类中也有的话就近调用子类的image.png  ②类和接口是一个同一级的概念,如果一个类的超类和它实现的接口中定义一个同名变量,这就会导致这个类中变量的引用不明确而报错,但是如果是方法的话就默认类优先原则调用超类中的方法  

image.png③还有一种就是一个类实现多个接口中有同名变量或方法,由于接口冲突此时引用这个变量或者方法就会报错,需要重写该方法或者重定义该变量

image.png

 总结来说同名情况下,多重继承变量方法都就近,一接口一超类变量报错、方法类优先,多实现接口冲突


🪂 为什么使用接口

  可能有的小伙伴要问了,既然抽象类跟接口都可以定义抽象方法,它们的子类或者实现类也都必须实现这个抽象方法,那么为什么不直接使用抽象类,而是大费周折的再引入接口的概念呢?抽象类毕竟是个类,类的话就只能继承一个抽象超类,但是一个类可以实现无数多个接口,也就是说接口弥补了Java语言只能单继承的局限性。

 接口的使用很广泛,比如想要实现序列化就要实现Serializable 接口,想要自定义对象的排序规则就要实现Comparable接口,重写CompareTo方法……


相关文章
|
8月前
|
Java
接口和抽象类的区别
接口和抽象类的区别
125 6
|
8月前
|
Java
抽象类和接口有什么区别?
抽象类和接口有什么区别?
|
4月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
156 5
|
8月前
|
C++
c++接口(抽象类)
c++接口(抽象类)
71 1
|
8月前
|
Java
抽象类和接口的区别
抽象类和接口的区别
91 0
接口和抽象类有什么区别
接口和抽象类有什么区别
69 0
C++中的抽象类和接口
C++中的抽象类和接口
99 0
抽象类、接口的区别和相似点(一)
抽象类、接口的区别和相似点(一)
139 0
抽象类、接口的区别和相似点(一)
|
Java 编译器
07 接口和抽象类
接口 比抽象类更加抽象的是接口,在接口中所有的方法都会被 public abstract 修饰。 注意:Java 8 之后接口中新增加了 default 默认方法和 对 static 方法的支持。 • Java 中不支持多继承,而是通过接口实现比多重继承更强的功能,java 通过接口可以使出于不同层次,甚至不相关的类具有相同的行为. • 接口可以认为是特殊的抽象类, 不能用于直接创建对象。接口的作用在于规定一些功能框架,具体功能的实现则通过该接口约束的类完成。
122 0