烟台Java培训
达内烟台中心

15265420612

热门课程

论抽象类与接口的不同

  • 时间:2015-12-19
  • 发布:烟台java培训机构
  • 来源:烟台java培训机构

论抽象类与接口的不同

怎样学好java,怎样赢得高薪,不同的选择,不一样的命运,全国java培训领导者—烟台达内java培训,以最负责的态度告诉你:学习java,来烟台java培训没有错。不同于其他培训机构的散漫,敷衍,烟台Java培训一直贯彻以保证每一位学员都能找到自己满意的工作为己任,不断创新,已和百度、腾讯、阿里巴巴等大型互联网企业建立用工协议,越来越多从烟台java培训中走出去的学员找到了自己理想的工作。给我们一份期望,定还你们一份梦想。

这两个问题一般在试题中出现的频率高一点,专家认为学员面试java岗位时,了解抽象类和接口的基本区别是面试官考察的重要方面。

往往第一个问题是关于接口和抽象类的区别,但是很少有程序员能给出正确的答案。

其中,初级程序员也许可以清楚之间的区别,但并不一定理解其背后的原因,要深入了解结构上的差异,尤其是针对特定语言。

老师表示:达内接口和抽象类的区别有如下几方面:

关于继承

任何类都可以实现多个接口,但是只能扩展一个类,也只能有一个父类。

多个类扩展是一个语言特性,它存在于一些面向对象的语言。

当一个类有许多父类时,有一个情况就是完全相同的方法会声明多个,因此必须明确告知究竟需要的是哪一个。

这样的代码通常难以维护,因为对其进行的任何修改或者重构都必须小心地检查。另一方面,如果一个类需要扩展至少两个拥有相同方法的类,那么DRY规则显然会被破坏,或者说会干扰到SAP。

每一个接口都是基于函数而不是一个类去实现。所以,即使实现十个不同的接口,每个包含相同的方法声明,内部也不会发生冲突。接口保证了方法的存在,而不是去说明方法的实现,这意味着,只要不违反SRP,你完全可以实现多个接口。

方法的可见度

接口中的所有方法都是public的,但对于抽象类的声明并没有这样的规则,当然不能是private。

接口是一个函数的保证——保证一个特定类将实现所有声明的方法。因此这些方法必须是public。

当涉及到抽象类时并非如此。我们总是可以有不同的类组,除了这几方面基本上不同以外,其他地方都一样,类体的公共方法也是非常相似的。在这种情况下,可以创建protected方法来保持类之间的差异。

声明和定义

接口只能包含方法声明,而抽象类还可以包含方法的定义。

接口的重点在于提供特定函数,而抽象类还在于子类实现的相似性,不仅仅是其中的函数。

常量

接口和抽象类中都可以定义常量。这是因为这些值不依赖于特定对象,对它们来说都是相同的。

属性

抽象类可以包含属性,但接口却不能。原因与声明和定义是一样的。

区分相似的东西,总是因为两者不管是概念还是功能呢上会有比较多相似的地方,那么如何更好的区分呢?就是在学习的时候记住理论,在实践中好好利用。

上一篇:适合前端开发的五种尖端人才
下一篇:来学习J2EE网页制作

你真的适合学习JAVA开发吗?

达内庆祝15周年华诞,帮助50万年青人成功就业

达内搭建“达内学院--乐智众创教育空间”

第十一届达内英才添翼校企合作高峰论坛在贵阳召开

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊