作者godfat (godfat 真常)
站内java
标题Re: [问题] 想请问interface的具体意义
时间Tue Jan 23 15:58:54 2007
站内,引用外转无妨
站内理由是不想再引起语言战争 XD
(而且似乎离题太远了)
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: ※ 引述《jaw109 (泼文章都是为了养小鸡)》之铭言:
: : anyway, 非常感谢大家这麽热心投入讨论
: : 我的心得是, 对JAVA的认识越多
: : 感觉JAVA与C++的距离就越远
: : 人家说学过C++再学JAVA会很容易
: : 我认为根本不是那样呢...
: 我是学了 Java,然後现在因为当 TA 的关系,回头「看」C++
: 以我的经验来说,学过 C++ 再来学 Java 真的比较容易
个人心得是,我越了解 Java, 就越觉得 Java 实在很容易(单指语言)
个人觉得,那些觉得了解 C++ 并不会让学 Java 比较容易的人,
根本就还没把 C++ 玩完。郑重声明这是个人感觉… XD
C++ 很复杂,真的很复杂,复杂到我花了不少时间,
却也觉得还有太多东西没搞懂。而 Java 目前我只翻过一本书,
Java in a Nutshell 5th, 只有前面看了一点,後面就懒得看了… Orz
因为觉得没什麽新意,有点无聊,真的没看过的东西,
试试猜猜也多半猜得到。(因为 C++ 里多半能找到影子)
再次声明,个人感觉,不要拿这点来骂我 XD
看看就好,当一个参考,有人这样想
: 跟 C++ 比起来,Java 语言
: 从名词的确立导致语法的好读性、限制一些弹性(也可以说简化)
: 都可以免去一些有的没的困扰
我写起 Java 老实讲,虽然常常会想骂缺少很多 feature,
但是,真的写起来却是很愉快。理由很简单,因为没有困扰。
在 C++ 中常常会有很多方法可以做到同一件事,所以我会思考
到底该怎麽做比较好。而 Java 呢?抱歉,没得选择,就是这样一条路。
所以写起来很轻松愉快…这是好是坏就看个人了,我没意见,
每个语言都有他的路。但 Java 比 C++ 简单太多我认为是不可否认的。
(纯就语言,不谈程式库,也不谈 scalability)
: 像 Java 中的 interface
: 我原本以为 C++ 里头没有 [殴飞]
: 後来才知道原来在 class 里头不写 method 的 detail 就是 Java 的 interface
: 只是,这样子似乎得靠自己去 check 哪些 method 已经 implement
no, try pure virtual function.
class Base{
public:
virtual void f() = 0;
};
class Derived: public Base{};
Derived d; // compile error, 不能建立抽象类别 Derived 的实体,
// 因为 f() 没有被实作。
: C++ 用「:」这种... 我觉得很鸟的符号
: 也分不出 extend 跟 implement 的分别(应该啦)
确实不容易分,如果全部都是 public inheritance 的话
(private inheritance 有时候会被叫成 implementation inheritance)
不过我觉得这不是什麽问题就是了,分这两种觉得不是很必要
真的要分,用人工的「规范」来做也不是不行
(convention over configuration, 是吧? XD)
像是很多人会把 interface 前缀 I
class I电动雨刷;
算是常见
: 再来就是多重继承带来的... 恩... 复杂性...
多重继承我不敢任意下评论 :o
: 所以... 如果搞懂 C++ 里头的物件
: 再回头看 Java,理论上应该是比较快乐才对....
: (唯一的例外大概是... 天生喜欢在暧昧不明当中取得弹性的人吧.... XD)
我有一个朋友,从 Java 学上来的
有时候我跟他讲一些 C++ 的概念,他会忽然恍然,
原来还有这种事啊,学 Java 根本不会知道。
(例如,pointer/reference 与 value 的差异
印象中,C# 还特别把 value 独立出来,
Java 应该没有,只有 primitive 可以有 value 能力)
知不知道这些到底重不重要,我想是看人,
就像这段末端所说的,也许喜欢用暧昧来取得弹性的人,大概不会喜欢 C++
btw, 我也不喜欢 Perl :( 不过倒是满欣赏的,纯观赏…不介入 XD
以上通篇充满主观意识,除了 pure virtaul function 那段
--
By Gamers, For Gamers - from the past Interplay
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18