How does the following code snippet behave when compiled and executed?
public interface Printable {
void print();
}
public class Document implements Printable {
@Override
public void print() {
System.out.println("Document is printed");
}
public static void main(String[] args) {
Printable p = new Document();
p.print();
}
}