面试的时候被问,接口和抽象类有什么区别?当时问就懵逼了,回答得不好,所以被pass了。

今天再想起来这个问题,就记录一下。

接口:我回答说,接口,就是对一类行为的归类。抽象类:我回答说,对一类物体的抽象。

嗯,其实自己理解得还是不够。事后想想,自己为啥不举个栗子呢。

例如,人类,这就是一个抽象类啊,因为还有很多人种啊,有亚洲人,欧洲人,非洲人等。实体(某某某)和另一个实体(某某某Z)在肤色,毛发之间肯定有差异的,而这些肤色,毛发等就是人的属性了嘛。

那么,吃饭,是一个接口啊,对吧?好像这个不怎么精确,因为,人如果不会吃饭的话,很难生存下来的。所以,吃饭应该是抽象类的一个虚方法,有人吃大米,有人吃面包,有人吃shit?哦,说错。反正,这个虚方法每个子类都可以重写。还有吃饭的时候,用筷子还是刀叉(用刀叉吃大米?国外人吃晚饭也可以叫吃饭吧?)

那,换个。煮饭,是一个接口了吧,毕竟不是人人都会煮饭啊。会煮饭的实体(某某某)就是继承,并实现了这个接口。当然,你煮饭是煮米饭还是煎牛排,这个就是接口的属性了。

那么问题来了,我要是当场举了这么一个例子,面试官会不会还是把我PASS呢?

转载于:https://www.cnblogs.com/5wenwo/p/10228440.html

水文-接口和抽象类有什么不同相关推荐

  1. 深入理解Java的接口和抽象类

    http://www.cnblogs.com/dolphin0520/p/3811437.html 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口 ...

  2. 接口与抽象类的使用选择

    为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种. 首先来了解一下接口 ...

  3. 选择Java接口还是抽象类

    很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种 ...

  4. 有关接口和抽象类的问题

    1. 一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要):如果是继承一个抽象类,只需要实现需要的方法即可,这是抽象类的一个优点 2. 如果一个接口中定义的方法名改变了 ...

  5. JavaSE学习总结(六)——接口、抽象类、内部类

    一.不需要实例化的原因 看一个示例: package com.zhangguo.chapter5.s1;/**动物园*/ public class Zoo {public static void ma ...

  6. 接口或抽象类:使用哪一个?

    本文翻译自:Interface or an Abstract Class: which one to use? Please explain when I should use a PHP inter ...

  7. java 接口与抽象类的区别

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  8. 【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )

    文章目录 I . Kotlin 接口定义与实现 II . Kotlin 抽象类定义 III . Kotlin 类继承抽象类并实现接口 IV . Kotlin 接口与抽象类子类测试 I . Kotlin ...

  9. 接口类抽象类 封装

      接口类抽象类: 第一版,不好,没有统一化设计,第二版解决. class QQ:def pay(self,money):print('您用qq支付了%s元' % money)class Ali:de ...

最新文章

  1. 全球20大智慧城市排行榜揭晓:无锡列中国第一,银川、杭州上榜!
  2. Web.config配置访问权限
  3. Python NumPy-快速处理数据
  4. mysql 堆叠查询_SQL 注入方法 - 盲注、报错注入、UNION查询注入与堆叠注入
  5. 第三十七期:为什么2019年人工智能算法岗求职竞争如此激烈?
  6. 【rman】list archivelog all与list backup of archivelog all
  7. 小米折叠手机高清渲染图曝光:双外折叠形态美如画
  8. 慕课学习--DNS的作用
  9. Python 实现校园卡目标检测与文字识别系统
  10. 软件测试linux笔试题目,linux基础面试题
  11. 活动目录集成区域DNS服务
  12. HyperVolume多目标评价指标概述
  13. unity5.x游戏开发指南示例下载
  14. SVD专题1 算子的奇异值分解——矩阵形式的推导
  15. 安立公司推出CPRI RF 测量选件
  16. 【生物信息学】外显子测序的原理及优缺点
  17. 计算机上分辨率怎么设置在哪里设置方法,win7分辨率怎么调|win7如何设置分辨率...
  18. PMI2016大会最全资料集合
  19. web前端期末大作业——基于HTML+CSS+JavaScript实现中国茶文化(30页)
  20. intel英特尔无线适配器高级设置

热门文章

  1. php基础教程文档,PHP5基础教程
  2. java与c++中的对象序列化分析
  3. parsel安装老是失败_Photoshop安装失败解决办法
  4. 如何确定python开发环境已经配置好_python学习第一天:window安装python开发环境完整篇...
  5. tensorflow打印模型结构_社区分享 | 详解 TensorFlow 中 Placement 的最后一道防线 — Placer 算法...
  6. python常用运维模块_python常用模块之一
  7. 怎么重置blockinput的锁_AppleID被锁如何解决 AppleID被锁激活方法介绍【图文】
  8. html原生音频播放器倍速,HTML5倍数功能视频播放器(加速2倍,1.5倍播放)
  9. java线程分类_Java 线程类别
  10. php的全局p变量程序_php如何定义全局变量