In Java, methods are always associated with a class, and there’s no distinction between value and pointer receivers as in some other languages. All non-primitive types in Java are reference types, so method calls always operate on the same instance of the object.
Next, we’ll look at Java’s mechanism for defining abstract types and behaviors: interfaces.