我想知道,爲什麼在Objective C中爲每個calss編寫接口和實現如此重要。在其他語言中,這種技術只是可選的。爲什麼你必須在目標C中編寫接口和實現,而不是實現
-3
A
回答
2
在Objective-C中,編寫接口也是可選的(聲明方法也是如此),儘管編譯器可能會提醒你。編寫接口允許其他人重用代碼的二進制形式,而無需重新編譯它;這樣你也可以隱藏實施細節/重複使用你課程的人的代碼。另外,如果只使用自己的類,那麼編譯器在編譯時可能需要一些信息(雖然Objective-C是一種動態語言),但在這種情況下,您不能包含整個實現文件會導致您的整個班級重複,導致鏈接器錯誤。同樣的原因,爲什麼有任何C庫的頭文件。
1
接口描述其他類及其實例如何與您的類及其實例進行交互。你可能只是創建實現,但這樣會打敗OOP的目的。
相關問題
- 1. 爲什麼Typescript中的抽象類實現和接口必須實現接口中的所有方法
- 2. 何時以及爲什麼我們必須實現Comparable接口?
- 3. 屬性實現必須在接口
- 4. 爲什麼一個類中實現的C#接口方法必須公開?
- 5. __construct()必須實現接口錯誤
- 6. 爲什麼「僅實現接口顯式」僅僅有時可用,而不是「實現接口」(即隱含地)?
- 7. 在C++中實現接口
- 8. 接口代碼而不是實現?
- 9. 爲什麼虛擬函數必須在超類中實現?
- 10. 什麼計劃,以一個接口,而不是程序實現
- 11. C# - 爲什麼在實現IEnumberable接口時實現兩個Current版本?
- 12. 必須實現接口A或接口B(只有一個)
- 13. 實現接口C#
- 14. 爲什麼我們要實現接口?
- 15. 爲什麼顯式的接口實現?
- 16. C++ 11已實現的接口方法不可用。爲什麼?
- 17. 爲什麼實現Serializable接口的類實現none接口的方法?
- 18. 實現在C++接口
- 19. 接口不必要求實現方法
- 20. 爲什麼.NET ObservableCollection <T>實現爲類而不是接口?
- 21. 實現和接口
- 22. C#實現接口與泛型重寫
- 23. 爲什麼SortedList實現使用ThrowHelper而不是直接拋出?
- 24. C++中的接口與實現。這是什麼意思?
- 25. 爲什麼不讓StringBuilder和StringBuffer實現一個通用接口?
- 26. C++ - 爲什麼要op + =而不是其他方式實現op +?
- 27. 如何在Javascript中編寫接口和實現?
- 28. MainActivity必須實現OnFragmentInteractionListener
- 29. 對象必須實現IConvertible?
- 30. EntityDateSource必須實現IQueryableDataSource?
那麼C++,Modula等人呢? – 2012-07-08 11:29:45