博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口与抽象类的区别
阅读量:6248 次
发布时间:2019-06-22

本文共 872 字,大约阅读时间需要 2 分钟。

hot3.png

1:在开发中,一个类永远不要去继承一个已经实现好的类,要么继承抽象类,要么实现接口,如果两个类同时都可以使用的话,优秀使用接口,避免单继承的局限。2:含有内部接口的抽象类的子类,必须也要定义内部类继承该接口。3:含有内部抽象类的接口,对于继承他的子类来说,除了要覆写接口中的抽象方法,还要专门定义一个内部类继承抽象类,并覆写全部抽象类。总结1)抽象类和接口类的实例化,通过多态性(向上转型,向下转型)。2)抽象类表示一个模板,接口表示一个标准。3)常见的设计模式:模板设计,工厂设计,代理设计,适配器设计。

 

https://blog.csdn.net/xiaoliuliu2050/article/details/61931498语义上的区别:首先 类描述的是 这个东西是什么(强调所属)?包含了静态属性,静态行为 ,属性和行为。而接口 描述的它能做什么事儿(强调行为)?     只是 静态常量属性 和 行为abstract class的应用场合      一句话,在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它。最常见的有:      A. 定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。      B. 某些场合下,只靠纯粹的接口不能满足类与类之间的协调,还必需类中表示状态的变量来区别不同的关系。abstract的中介作用可以很好地满足这一点。      C. 规范了一组相互协调的方法,其中一些方法是共同的,与状态无关的,可以共享的,无需子类分别实现;而另一些方法却需要各个子类根据自己特定的状态来实现特定的功能其他情况下都是使用 接口。应该这样说,我们再开始使用的时候就是用的接口,后来实现的子类里有些子类有共同属性,或者相同的方法实现,所以提取出来一个抽象类,作为类和接口的中介。

 

转载于:https://my.oschina.net/craftsdream/blog/1944458

你可能感兴趣的文章
Alinq学习日志
查看>>
根据框架的dtd或xsd生成xml文件
查看>>
LeetCode Notes_#3 Longest Substring Without Repeating Characters
查看>>
MVP MVVM MVC
查看>>
[BZOJ3684]大朋友和多叉树
查看>>
【Linux 驱动】第九章 与硬件通信
查看>>
方便记忆的电话号码
查看>>
OSGMFC
查看>>
JQuery开发的lightBox控件实例
查看>>
linux 文件查找,which,whereis,locate,find
查看>>
c c++ 宏定义中#, ##, #@的含义
查看>>
设计模式
查看>>
String、StringBuffer和StringBuilder
查看>>
NioSocket的用法
查看>>
HDU1231(DP)
查看>>
第四章 图像的灰度变换
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(23)——文档列表
查看>>
linux之sed用法
查看>>
[转载] 全本张广泰——第十七回 夫人诱广泰 血溅洪洞县
查看>>
[转载] 财经郎眼20120326:房价降不下来的秘密
查看>>