Re: [問題] 想請問interface的具體意義

看板java作者 (godfat 真常)時間19年前 (2007/01/23 15:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串18/29 (看更多)
站內,引用外轉無妨 站內理由是不想再引起語言戰爭 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
文章代碼(AID): #15jS11N7 (java)
討論串 (同標題文章)
文章代碼(AID): #15jS11N7 (java)