作者adrianshum (Alien)
看板java
标题Re: [问题] Abstract 和 Interface 差别?
时间Mon May 18 20:19:49 2009
这些很难在三言两语里解说得完
很多是要你有一定程度和有设计的经验才能了解.
只抽取一些明显的错误和基本的概念答一答吧
※ 引述《ieping (maggie)》之铭言:
: 我只知道:
: Interface:
: 1.介面
: 2.须加static
没有须加 static 这事.
你说得太含糊根本不知道你想表达什麽
: 3.不能实做方法
: 4.通常用在多重继承
interface 和多重继承有本质上很大的差别.
只可以说, 多重继承其中一种常用的状况, 能以
interface 达成
: 5.若类别要做interface要加上implements 介面_名称
: Abstract:
: 1.抽象
: 2.抽想类别
: 3.抽想方法
抽想?
你上面列这三句也是不知道你想说啥
: 4.可以实做
: 问题:
: 1.以上,还有其他的吗?
了解他们本质上的分别, 比这些有的没的比较来得有用
: 2.我有看人没有先用extends 类别_名称 直接 再类别用implements出好多的 介面
: 是不是这样也可以?但不太知道代表的意思or概念?
可以
: 谢谢高手们~
以前看过某人,用了一个例子来说明 base class 和 interface 的分别.
(忘了是谁了, 请谅)
extends 一个 base class, 指的是 'is-a' 的关系
interface 则是该物支援的介面
比如一部电视机, 它 是一个 (is-a) 电器.
所以很自然, 电器是一个 class, 电视机 extends 电器
电视机支援 100v 电源输入
100v 电源输入是一个介面 (interface), 也很自然, 你可
以说
电视机 支援 (implements) 100v电源输入
但你不会说
电视机 是一个 100v电源输入
能感受到两者分别, 就是了解 class 和 interface 含义的最初也是最重要一步
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 TonyQ:我也记得版上有一个很棒的例子 , 查 interface 资料很多, 05/19 06:31