点击进入_很多其它_Java千百问

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. 规范了一组相互协调的方法。当中一些方法是共同的。与状态无关的,能够共享的,无需子类分别实现;而还有一些方法却须要各个子类依据自己特定的状态来实现特定的功能。

Java千百问_05面向对象(005)_接口和抽象类有什么差别的更多相关文章

  1. Java千百问_05面向对象(011)_引用传递和值传递有什么差别

    点击进入_很多其它_Java千百问 1.什么是值传递 值传递,是将内存空间中某个存储单元中存放的值,传送给还有一个存储单元.(java中的存储单元并不是物理内存的地址,但具有相关性) 比如: //定义 ...

  2. Java千百问_05面向对象(006)_is-a,has-a,like-a是什么

    点击进入_很多其它_Java千百问 1.is-a,has-a,like-a是什么 在面向对象设计的领域里,有若干种设计思路,主要有例如以下三种: is-a.has-a.like-a java中在类.接 ...

  3. Java千百问_03基本的语法(005)_二进制是如何做位运算的

    点击进入_很多其它_Java千百问 二进制是如何做位运算的 程序中的全部数在计算机内存中都是以二进制的形式储存的.位运算说白了,就是直接对整数在内存中的二进制位进行操作. 其它运算符看这里:java种 ...

  4. Java千百问_03基本的语法(001)_局部变量、类变量、实例变量有什么差别

    点击进入_很多其它_Java千百问 局部变量.类变量.实例变量有什么差别 在聊局部变量.类变量.实例变量有什么差别之前,我们须要了解一下Java变量. 1.Java变量是什么 在数学世界中,我们知道有 ...

  5. “全栈2019”Java第一百零九章:匿名内部类实现唯一抽象类或接口

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Java学习笔记10(面向对象三:接口)

    接口: 暂时可以理解为是一种特殊的抽象类 接口是功能的集合,可以看作是一种数据类型,是比抽象类更抽象的"类" 接口只描述所应该具备的方法,并没有具体实现,具体实现由接口的实现类(相 ...

  7. Java学习笔记8(面向对象3:接口)

    接口的概念: 接口是功能的集合,同样可以看最做事一种数据类型,是比抽象类更为抽象的"类”. 接口之描述所应该具备的方法,并没有具体实现,具体的实现有接口的实现类(相当于接口的子类)来完成.这 ...

  8. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  9. java_基础_接口和抽象类

    1.接口 java中接口的存在意义是:让多个继承该接口的类实现多态,让多个类有相同的特征 示例代码: interface MyInterface{ void myMethod(); } class T ...

随机推荐

  1. Matlab中使用LaTeX

    Matlab作为数据计算和处理的数学语言(软件),而LaTex作为出版界的重要排版语言(软件),尤其是对数学公式的排版功能特别强.在Matlab中有两种方法使用LaTeX:1)对Matlab生成的图形 ...

  2. spring mvc 返回乱码SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题

    原文地址:https://www.cnblogs.com/fzj16888/p/5923232.html 先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文 ...

  3. 解决在非Activity中使用startActivity

    错误提示信息: Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an ...

  4. Rotate Image leetcode java

    题目: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwis ...

  5. 在Asp.Net中使用SmtpMail发送邮件的方法

    在ASP中,就可以通过调用CDONTS组件发送简单邮件,在ASP.Net中,自然也可以.不同的是,.Net Framework中,将这一组件封装到了System.Web.Mail命名空间中. 一个典型 ...

  6. Tensorflow-3-使用RNN生成中文小说

    https://blog.csdn.net/heisejiuhuche/article/details/73010638 这篇文章不涉及RNN的基本原理,只是从选择数据集开始,到最后生成文本,展示一个 ...

  7. (转)Unity3D研究院之Assetbundle的实战(六十三)

    上一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity3D研究院之Assetbundle的原理(六十一) 本篇文章我们将说说assetbundl ...

  8. How to Redirect in ASPNET Web API

      You could set the Location header: public HttpResponseMessage Get() { var response = Request.Creat ...

  9. 初探iOS网络开发,数据解析。

    通过大众点评平台开发来简单了解一下,oc的网络编程和数据解析(json) 首先我们需要到大大众点评开发者平台申请一个key.http://developer.dianping.com/app/tech ...

  10. (纪录片)你必须知道的科学 The Science That You Have To Know (2014)

    简介: 类型: 纪录片制片国家/地区: 英国语言: 英语上映日期: 2014-2片长: 150分钟 主要内容: 你有没有认真想过,自己的身体有多奇妙?人体是世间最复杂的一项工程杰作,他也带来了一些非常 ...