私はScala論文の紹介を読んでいて、次の声明を見つけました:
一部のオブジェクト指向言語にはクラスの概念がないことに注意してください。
質問:どのオブジェクト指向言語にクラスの概念がなく、型 (クラス) - オブジェクト (型インスタンス) の関係をどのように処理しますか?
私はScala論文の紹介を読んでいて、次の声明を見つけました:
一部のオブジェクト指向言語にはクラスの概念がないことに注意してください。
質問:どのオブジェクト指向言語にクラスの概念がなく、型 (クラス) - オブジェクト (型インスタンス) の関係をどのように処理しますか?
一般的な言語ではそれらを混同するのが一般的ですが、クラスと型は異なる概念です。クラスは、クラスのインスタンスが所有する属性とメソッドを定義する、オブジェクトの設計図として適切に理解されますが、(オブジェクト) 型はインターフェイスであり、どのメソッドをどのパラメーターで呼び出すことができるかを記述します。
したがって、クラスのない言語を想像することは難しくありません。必要なのは、オブジェクトを作成し、(新しい) オブジェクトに属性とメソッドを与えるためのある種の構造体だけです。Javascript はよく知られている例です。そのような言語では継承は少し変わったように見えますが、確かに実行できます (たとえば、Antero Taivalsaari の記事「継承の概念について」を参照してください)。