当前位置:  技术问答>java相关

深入探讨java的接口和抽象的内涵!(续上贴,上贴分已给)

    来源: 互联网  发布时间:2015-02-04

    本文导语:  请大家继续! 越讨论越明了! 是不是? | 这个问题其实主要谈的是对面向对象的理解.和java关系不很紧. 班门弄斧一次:接口是一种抽象,提取出一部分对象的共性. 譬如我可以定义一个 Flyable...

请大家继续!
越讨论越明了!
是不是?

|
这个问题其实主要谈的是对面向对象的理解.和java关系不很紧.

班门弄斧一次:接口是一种抽象,提取出一部分对象的共性.

譬如我可以定义一个 Flyable 的接口.描绘一种"可以飞"的特性,在这个接口中定义fly这个动作.

然后我定义三个类:Bear,Eagle,Cat.显而易见,Eagle应实现这个接口.

|
同意vampirelord(),对于接口来说主要是为了使“不会飞”的东西也具有“可以飞”的能力,于是这样的东西就要实现接口(Flyable)。比如要让原本不具有“飞”的东西具有飞的能力,比如给Bear插上翅膀和推进器,那它就具有飞起来的能力了。
另外一个例子就是人类的飞行器——因为一个金属筒原本不会飞的。在加上可以飞的观念的同时在飞行器上加上Flayable的函数实现体——也就是发动机、翅膀、流体力学的应用等。

接口  抽象的区别:
接口和抽象都没有函数体(仅有声明),因为没有办法确定所要实现的实例究竟以什么方式“飞”。

对于抽象:可以想象抽象类下边的类都具有的能力(但不知道具体的实现过程)一般是用接口来实现,比如对“会飞的生物类”来说,对于继承它的子类肯定可以飞,但它们飞的时候肯定又不一样,是千姿百态的就没有办法确定“飞”的函数体,就如老鹰(Eagle)和蝴蝶(Butterfly)。它们需要在自己的类中添加“飞”的函数体。

而对于交通工具,“飞”并不是必须实现的一个功能,所以引入“可以飞”(Flyable)这样一个接口就可以了,但“飞”的函数体还是得自己实现。

|
a class implements a interface is saying that: "i can do everything wrote in this interface, use me if you want these methods to be done"
if a class exneds a abstract class, it is saying that: "i have all things in this class",but not meaning you can trust it to do what the base class can do 

    
 
 

您可能感兴趣的文章:

  • 深入探讨java的接口和抽象的内涵!
  • 大家能否深入探讨一下J2EE到底包含那些东东,在实际企业应用是否如同J2EE所承诺的一样!
  • 深入探讨:main函数执行完毕后,是否可能会再执行一段代码?
  • 深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法
  • 基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探讨
  • C++实现strcmp字符串比较的深入探讨
  • 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较
  • 深入探讨C#中的结构struct
  • 整体刷新和局部刷新frameset窗口问题深入探讨
  • 用32位int型变量表示单引号括起来的四个字符的深入探讨
  • 深入探讨CSS中字体元素
  • 深入探讨C#中的const、readonly关键字
  • 函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
  • 深入探讨:oracle中row_number() over()分析函数用法
  • 深入探讨C++父类子类中虚函数的应用
  • 深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数
  • 深入探讨:oracle中方案的概念以及方案与数据库的关系
  • Java源码分析:深入探讨Iterator模式
  • 深入探讨Linux静态库与动态库的详解(一看就懂)
  • 深入探讨JAVA中的异常与错误处理
  • 深入探讨Unit Testing in Android
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java接口和抽象类的区别深入剖析
  • java比较器Comparable接口与Comaprator接口的深入分析
  • C#中的IEnumerable接口深入研究
  • Docker支持更深入的容器日志分析
  • 关于《深入浅出MFC》
  • Linux有没有什么好的高级的书,我要深入,
  • 深入理解linux内核
  • [100分]有没有关于binutils的深入的资料?或者深入底层的资料?
  • 深入理解PHP内核 TIPI
  • 想深入学习Java应该学习哪些东西
  • 哪位有《JSP深入编程》电子版?
  • 想要深入学习LINUX该学什么?
  • 100分求:哪儿有《深入理解linux内核》可供下哉!
  • 如何深入Linux的内核学习?
  • U-BOOT得掌握到什么程序,用不用深入去学
  • 想深入了解操作系统该怎么做
  • 前一阵子学习了shell脚本,如果想深入点了解linux可以看什么书呢
  • 问一个《深入理解计算机系统》中的问题
  • 深入多线程之:深入分析Interlocked
  • ##想买书深入学习linux下的编程,请指教
  • 深入JDBC sqlserver连接写法的详解
  • 深入oracle特定信息排序的分析
  • 深入分析C中不安全的sprintf与strcpy
  • 哪儿有下载《深入理解Linux内核》这本书?(中文)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3