gpt4 book ai didi

oop - 为什么声称 c# 人不会进行面向对象编程? (相对于面向类)

转载 作者:行者123 更新时间:2023-12-03 21:00:25 25 4
gpt4 key购买 nike

昨晚这引起了我的注意。

上最新ALT.NET Podcast Scott Bellware 讨论了与 Ruby 不同的语言,如 c#、java 等。不是真正的面向对象,而是选择了“面向类”这个词。他们用非常模糊的术语谈论这种区别,而没有详细介绍或讨论利弊。

这里的真正区别是什么?它有多大关系?那么其他什么语言是“面向对象的”?这听起来很有趣,但我不想为了知道我遗漏了什么而必须学习 Ruby。

更新 :阅读下面的一些答案后,似乎人们普遍同意引用的是鸭子类型。我不确定我仍然理解的是,这最终会改变这么多的说法。特别是如果您已经在使用松散耦合等等进行适当的 tdd 的话。有人可以向我展示一个我可以用 ruby​​ 做而我不能用 c# 做的奇妙事情的例子,这说明了这种不同的 oop 方法吗?

最佳答案

在面向对象的语言中,对象是通过定义对象而不是类来定义的,尽管类可以为给定抽象的特定的、千篇一律的定义提供一些有用的模板。在面向类的语言中,例如 C#,对象必须由类定义,并且这些模板通常在运行前被封装和打包并成为不可变的。对象必须在运行前定义并且对象的定义是不可变的这种任意约束不是面向对象的概念;它是面向类(Class)的。

关于oop - 为什么声称 c# 人不会进行面向对象编程? (相对于面向类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com