`

java 基础之接口与抽象类的区别

 
阅读更多

共同点:都是抽象类型

不同点:

1. 继承角度
一个具体类只能继承一个抽象类,但一个具体类可以实现多个接口。(java多继承)

2. 抽象类与抽象方法
含抽象方法的类必须被声明为抽象类,但抽象类不一定必须有抽象方法。
抽象类的抽象方法必须被子类实现。子类可以有选择地重写需要的非抽象方法,但是接口的实现类必须实现接口的所有方法。
另外Java抽象类可以提供某些方法的部分实现,而Java接口不可以。

3. 成员变量
接口必须是公开的(public)的,不能由私有(private)的方法或变量;
接口中的变量必须是public static final(接口中一般不定义数据成员),且必须给其初值,实现类中不能重新定义,也不能改变其值;
抽象类可以有私有方法或私有变量,抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。

4. 设计理念不同
其实abstract class表示的是”is-a”关系(塑料碗和瓷碗都是碗),interface表示的是”like-a”(像雾像风又像雨)关系,组合起来就是”has a”关系(智能手机继承自手机,同时实现了闹钟、MP3等各种功能)。

简单地说,接口是模块之间的协议,一些模块用于实现某些协议的具体动作,另外一些模块只针对接口编程,这样实现低耦合。
抽象类主要是用于继承设计的,主要用于模板设计!

经典的设计模式:缺省/默认适配模式(Default Adapter)

声明类型的工作仍然由Java接口承担,但是同时给出一个Java抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类。也就是说在层次结构中,Java接口在最上面,然后紧跟着抽象类,哈,这下两个的最大优点都能发挥到极至了。这个模式就是“缺省适配模式”。

在Java语言API中用了这种模式,而且全都遵循一定的命名规范:Abstract +接口名。

分享到:
评论

相关推荐

    接口与抽象类的区别以及一些java基础

    接口与抽象类的区别java基础一些东西,这些东西在面试中是常考的。大家可以看看

    Java基础知识:接口和抽象类

    Java基础知识:接口和抽象类

    接口和抽象类的区别(面向对象)

    接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...

    实验3 抽象类和接口(2学时)

    掌握Java中抽象类和抽象方法的定义; 掌握Java中接口的定义,熟练掌握接口的定义形式以及接口的实现方法。 二、实验内容 1、按照要求使用Java进行编码。 编写一个抽象类Shape,其中有抽象方法getArea()和...

    Java基础教程之接口的继承与抽象类

    主要介绍了Java基础教程之接口的继承与抽象类,本文介绍了接口继承、接口的多重继承以及抽象类的知识,需要的朋友可以参考下

    动力节点_Java基础视频教程71_接口与抽象类的区别

    动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础...适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础更扎实的小伙伴,配套资料下载:http://www.bjpowernode.com/?csdn

    Java-Java面向对象抽象类和接口实现教程

    Java 面向对象抽象类和接口实现教程 资源为视频教程资源 希望对你的 Java 学习有所帮助。

    java学习资料抽象类,接口,内部类

    学习java技术的基础方面的知识,有利于更加好的理解 ,抽象类,接口,内部类

    Java基础 接口.pdf

    6、接口与抽象类有些相似,但也有很大区别,比如接口不能包含构造器、变量和实例方法等。 Java接口的具体作用 1、接口定义了一个规范,类实现这个规范即可满足某些特定的需求。 2、接口可以使代码结构更加清晰,提高...

    抽象类和接口的详细区别和联系

    本文档详细描述了抽象类和接口的区别,希望通过该文档,能帮助大家提高对Java基础知识的认识。

    Java基础篇_有关接口和抽象类的几道练习题(分享)

    下面小编就为大家带来一篇Java基础篇_有关接口和抽象类的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    稳稳当当学java之抽象类和接口(11)

    本人的笔记,关于java基础中抽象类和接口的内容 包括 1.作业回顾 2.继承规则二 3.方法重写 4.多态 5.final修饰符 6.抽象类 7.接口 8.练习

    Java 基础核心总结 +经典算法大全.rar

    接口和抽象类接口 抽象类异常 认 识 Exception 什么是 Throwable 常见的 Exception 与 Exception 有关的 Java 关键字 throws 和 throw try 、finally 、catch 什么是 Error 内部类 创建内部类集合 Iterable 接口顶层...

    接口、内部类和Java API基础

    接口(interface)是一组常量和抽象方法的集合。接口是一种引用数据类型。 抽象方法的具体实现由实现接口的类完成,实现接口的类必须覆盖接口中的所有抽象方法。

    完整版优质java课件 Java基础入门教程 Java编程技术14 补充--对多态、抽象和接口的理解(共24页).ppt

    【完整课程列表】 ... Java基础入门教程 Java编程技术01 java概述(2学时)(共27页).ppt Java基础入门教程 Java编程技术02 Java编程基础...Java基础入门教程 Java编程技术14 补充--对多态、抽象和接口的理解(共24页).ppt

    java基础PPT

    java基础:接口,抽象类,内部类,注解实施地方撒是速度

    编写一个抽象类Shape

    1) 编写一个抽象类Shape,其中有抽象方法getArea()和getPerimeter() 2) 在Shape类的基础上派生出Rectangle和Circle类,二者都实现了计算面积的方法getArea()和计算周长的方法getPerimeter(); 3) 构造main...

    Java基础知识点总结.docx

    二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 20 四、 面向对象★★★★★ 21 五、 封装(面向对象特征之一)★...

Global site tag (gtag.js) - Google Analytics