Abstract 和Interface的共同点和区别以及应用场景

04月19日 收藏 0 评论 2 java开发

Abstract 和Interface的共同点和区别以及应用场景

转载声明:文章来源https://blog.csdn.net/jinxinxin1314/article/details/105085781

abstract:

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

interface:

描述对象有哪些属性。

共同点:

A.两者都是抽象类,都不能实例化

B.Interface实现类和abstract继承类都必须实现抽象方法

不同点:

A.Interface需要实现,用implements;Abstract 需要继承,用exends

B.一个类可以实现多个Interface ;一个类只能继承一个Abstract

C.Interface强调功能的实现;Abstract强调从属关系

D.Interface的所有抽象类都只有声明没有方法体;Abstract抽象方法可以选择实现,也可以选择继续声明为抽象方法,无需实现,留给子类去实现

应用场景:

interface的应用场景:

A. 类与类之前需要特定的接口进行协调,而不在乎其如何实现。

B. 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。

C. 需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。

D. 需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。

abstract class的应用场景:

A. 定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。

B. 某些场合下,只靠纯粹的接口不能满足类与类之间的协调,还必需类中表示状态的变量来区别不同的关系。abstract的中介作用可以很好地满足这一点。

C. 规范了一组相互协调的方法,其中一些方法是共同的,与状态无关的,可以共享的,无需子类分别实现;而另一些方法却需要各个子类根据自己特定的状态来实现特定的功能。

C 2条回复 评论
招招

终于弄懂这个知识点了!!!

发表于 2023-02-24 22:00:00
0 0
信长之野望

深圳有好的UI培训班吗?

发表于 2022-07-27 21:00:00
0 0