我想知道,为什么在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