As far as I understand it, classes –as they are supported in OOP languages such as C++, Java, and Scala – define the type of each object I can instantiate with that class.
Not all features of a class are relevant to the type of its instances: Private methods, the constructor, the destructor (in C++), and the methods' implementations.
My question: Are the static methods of a class part of the instances' type?
Related: Is there a distinct type of a class (calling
new to get an instance, calling its static methods) and the type of the class' instances (calling the public methods).
I'm happy for all suggestions and corrections of any invalid assumptions I have made.