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

Virginer 2001-09-14 01:33:47
请大家继续!
越讨论越明了!
是不是?
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Virginer 2001-09-18
  • 打赏
  • 举报
回复
给分!
nielinjie 2001-09-14
  • 打赏
  • 举报
回复
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
Altair 2001-09-14
  • 打赏
  • 举报
回复
同意vampirelord(),对于接口来说主要是为了使“不会飞”的东西也具有“可以飞”的能力,于是这样的东西就要实现接口(Flyable)。比如要让原本不具有“飞”的东西具有飞的能力,比如给Bear插上翅膀和推进器,那它就具有飞起来的能力了。
另外一个例子就是人类的飞行器——因为一个金属筒原本不会飞的。在加上可以飞的观念的同时在飞行器上加上Flayable的函数实现体——也就是发动机、翅膀、流体力学的应用等。

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

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

而对于交通工具,“飞”并不是必须实现的一个功能,所以引入“可以飞”(Flyable)这样一个接口就可以了,但“飞”的函数体还是得自己实现。
vampirelord 2001-09-14
  • 打赏
  • 举报
回复
这个问题其实主要谈的是对面向对象的理解.和java关系不很紧.

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

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

然后我定义三个类:Bear,Eagle,Cat.显而易见,Eagle应实现这个接口.
Virginer 2001-09-14
  • 打赏
  • 举报
回复
让分浪费掉吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧