¿Cuál es la diferencia entre una clase y un tipo en Scala (y Java)?

Scala

¿Dónde se pueden observar las diferencias entre una clase y un tipo en Scala y por qué es importante esta distinción?

Es solo una consideración desde el punto de vista del diseño del lenguaje o tiene un impacto "práctico" al programar Scala?

O es fundamental para "asegurar los límites" del sistema de tipos Nothing, Null vienen a mi mente)

Jav

Cuántas de las consideraciones / diferencias / problemas mencionados anteriormente también se pueden reconocer en Java?

(Ver ¿Cuál es la diferencia entre Tipo y Clase? como introducción independiente del lenguaje.)

Respuestas a la pregunta(4)

Su respuesta a la pregunta