An Interface which doesn't have any declaration inside but still enforces a mechanism.
Yes it's possible. This is basically to avoid instance creation of the class.
No not possible. Class C should provide implementation for all the methods in the Interface I. Since Class C didn't provide implementation for m1 method, it has to be declared as abstract. Abstract classes can't be instantiated.
No not possible. Doing so will result in compilation error. public and abstract are the only applicable modifiers for method declaration in an interface.