Where can I find documentation of how to use the “abstract” keyword in the C3 Type System? I thought it was equivalent to the “abstract” keyword in Java, but there must be some subtle differences that I’m failing to grasp.
I have a NON-ABSTRACT Type A mixing in an abstract Type B with abstract method M. However, Type A does not implement the abstract method M. This should be an error, but I CAN provision the package with type A. And in fact, I can make an object of type A (of course, you can’t call the method on type A, because it’s not defined).
What does the “abstract” keyword on a method mean? If we can’t ensure that the method is defined on any non-abstract subclasses, does declaring an abstract method serve any purpose?
My understanding of using abstract classes and interfaces comes from:
"When an abstract class is subclassed, the subclass usually provides implementations for all of the abstract methods in its parent class. However, if it does not, then the subclass must also be declared abstract."