Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当scala不支持多重继承时,什么都不能成为所有类型的子类_Scala - Fatal编程技术网

当scala不支持多重继承时,什么都不能成为所有类型的子类

当scala不支持多重继承时,什么都不能成为所有类型的子类,scala,Scala,这更多的是我偶然发现的概念性问题。Scala状态比多重继承不受支持,但同时状态比“Nothing”是所有类型的子类。这不是与Scala陈述的概念相反吗 不支持Scala状态超过多重继承 事实并非如此。Scala支持线性化的多重混合继承 但同时状态比“Nothing”是所有类型的子类 事实并非如此。明确指出,没有扩展任何,仅此而已。它只是Any的一个子类,其他什么都不是 文件还说明(粗体强调): Nothing是所有其他类型的子类型(包括scala.Null) 正如您所看到的,文档中没有提到Not

这更多的是我偶然发现的概念性问题。Scala状态比多重继承不受支持,但同时状态比“Nothing”是所有类型的子类。这不是与Scala陈述的概念相反吗

不支持Scala状态超过多重继承

事实并非如此。Scala支持线性化的多重混合继承

但同时状态比“Nothing”是所有类型的子类

事实并非如此。明确指出,
没有扩展任何
,仅此而已。它只是
Any
的一个子类,其他什么都不是

文件还说明(粗体强调):

Nothing
是所有其他类型的子类型(包括
scala.Null

正如您所看到的,文档中没有提到
Nothing
是所有类型的子类。它只是说它是所有类型中的一种亚类型,这是完全不同的

这不是与Scala陈述的概念相反吗

不,不是

但即使你说的是真的,也没有矛盾:Scala语言规范定义了什么是“Scala”,如果SLS说
Nothing
是所有类的子类,那么它就是这样的。Scala语言规范可以说任何它想说的话,这永远不会违背Scala的概念,因为Scala语言规范定义了Scala的概念

现在,事实证明,您的前提是错误的,Scala语言规范并没有说
Nothing
有多个超类,但它可以说如果需要的话,这不会违背Scala的概念,因为Scala语言规范说明了Scala的概念到底是什么

不支持Scala状态超过多重继承

事实并非如此。Scala支持线性化的多重混合继承

但同时状态比“Nothing”是所有类型的子类

事实并非如此。明确指出,
没有扩展任何
,仅此而已。它只是
Any
的一个子类,其他什么都不是

文件还说明(粗体强调):

Nothing
是所有其他类型的子类型(包括
scala.Null

正如您所看到的,文档中没有提到
Nothing
是所有类型的子类。它只是说它是所有类型中的一种亚类型,这是完全不同的

这不是与Scala陈述的概念相反吗

不,不是

但即使你说的是真的,也没有矛盾:Scala语言规范定义了什么是“Scala”,如果SLS说
Nothing
是所有类的子类,那么它就是这样的。Scala语言规范可以说任何它想说的话,这永远不会违背Scala的概念,因为Scala语言规范定义了Scala的概念


现在,事实证明,您的前提是错误的,Scala语言规范没有说
Nothing
有多个超类,但它可以说,如果需要,这不会违背Scala的概念,因为Scala语言规范说明了什么,确切地说,Scala的概念是。

Nothing
不是所有类型的子类,它是所有类型的子类型。@Michael Zajac,但不是子类是一种子类型。它们之间到底有什么区别。确切地说,子类化是一种子类型化。与子类化相反,它允许多重继承。谢谢你的帮助。子类化创建了一个子类型关系,但是你可以创建一个子类型关系而不需要子类型化。例如,
Option[String]
Option[Any]
的子类型,但不需要子类来定义它。
Nothing
不是所有类型的子类,它是所有类型的子类型。@Michael Zajac,但不是子类化是一种子类型。它们之间到底有什么区别。确切地说,子类化是一种子类型化。与子类化相反,它允许多重继承。谢谢你的帮助。子类化创建了一个子类型关系,但是你可以创建一个子类型关系而不需要子类型化。例如,
Option[String]
Option[Any]
的一个子类型,但不需要子类来定义它。@Jörg W Mittag,谢谢你。我对类型和类感到困惑,但上面的解释澄清了这一切。@Jörg W Mittag,谢谢你,伙计。我对类型和类别感到困惑,但上面的解释澄清了这一切。