面向对象设计的思想是从现实世界中抽象出来的一套理论。既然是对现实世界的抽象,继承的本质就是父子关系。例如,动物是父母,猫是孩子。不能说具有父类的属性或方法是继承。
go放弃继承的主要原因是继承随着面向对象的发展而被滥用了这么多年。然而,一些继承的特性是非常需要的,所以提供了“嵌入”以便于“模拟”继承,但其本质是组合,而不是继承。
让我给你一个例子来证明在go中嵌入是一个组合,而不是一个继承。
但是,根据面向对象理论,子类可以在父类可以使用的任何地方使用。显然,go嵌入不满足这个要求。吐槽:什么是头条最好的产品,当你可以抱怨技术文章的时候,代码编辑太不舒服了。