如果字符串类继承自基类,那么如何在基类上实现toString方法?

时间:2014-05-27 10:13:58

标签: oop inheritance language-agnostic programming-languages

在许多现代OOP语言中,例如JavaC#,引用类型都有一个通常称为Object的基类,所有其他引用类型都从该基类继承其核心功能

这些语言还具有在所有引用类型中共享的通用.toString()方法,因此可以轻松地从中提取数据作为字符串。

现在问题是:如果String类是Object的子类,Object如何实现.toString()方法而不会导致循环依赖?

如果A使用B并且B实施A它会导致问题,或者我完全错了吗?

1 个答案:

答案 0 :(得分:3)

关于C#(我非常确定Java也是如此),编译器并不要求以依赖顺序提供源文件。

这意味着,与其他编译器(我相信F#编译器和gcc)不同,C#编译器允许您引用编译器尚未看到的符号(只要两种类型都在相同的集会)。

换句话说 - 是的,那里是循环依赖,但编译器会为你处理。如果你想知道编译器如何处理循环依赖,那么programmers.stackexchange就已经问过了。