Java千百问_05面向对象(005)_接口和抽象类有什么区别

简介:

1、接口和抽象类有什么区别

Java语言中,抽象类abstract class和接口interface是抽象定义的两种机制。

正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。抽象类abstract class和接口interface在对于抽象定义方面具有很大的相似性,甚至可以相互替换。因此很多开发者在进行抽象定义时对二者的选择显得比较随意。其实,两者之间还是有很大的区别,对于它们的选择能反映出对问题本质的理解、对设计意图的理解。

了解抽象类看这里:java中抽象概念如何体现的 
了解接口看这里:java中接口到底是什么 
了解更多继承看这里:java类的继承有什么意义

具体如下: 
这里写图片描述 
了解is-a,has-a,like-a关系看这里:is-a,has-a,like-a是什么

2、interface应用在什么场合

  1. 类与类之间需要特定的接口进行协调,而不在乎其如何实现。
  2. 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。如序列化接口:Serializable
  3. 需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。
  4. 需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。

3、abstract class应用在什么场合

  1. 定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。
  2. 某些场合下,只靠纯粹的接口不能满足类与类之间的协调,还必需类中表示状态的属性来区别不同的关系。
  3. 规范了一组相互协调的方法,其中一些方法是共同的,与状态无关的,可以共享的,无需子类分别实现;而另一些方法却需要各个子类根据自己特定的状态来实现特定的功能。
原文地址:http://blog.csdn.net/ooppookid/article/details/51173179
相关文章
|
1天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
4 0
Java接口中可以定义哪些方法?
|
3天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
15 0
|
3天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
7天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
25 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
7天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
36 0
对象的交响曲:深入理解Java面向对象的绝妙之处
|
9天前
|
存储 Java
java接口和内部类
java接口和内部类
|
11天前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
26 0
|
7月前
|
Java
Java接口和抽象类
Java接口和抽象类
51 0
|
1月前
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
25 0
|
1月前
|
Java
Java面向对象程序设计5接口与抽象类
Java面向对象程序设计5接口与抽象类
25 0