Big encapsulation-style languages, such as Java, Kotlin, or C#, have a distinction between classes and types. S4, being a generic-function style OOP system, is fundamentally different. But does it still have a class/type distinction of any kind?
Note this question is very similar to Does R's S3 OOP system have a distinction between classes and types?. It may have a similar, perhaps identical, answer. If there is a difference, explaining it would be helpful.