1 interface I
2 {
3   public void m();
4 }
5 
6 abstract class A implements I
7 {
8   // But doesn't define m()
9 }
10 
11 public class pr8823 extends A // which means it implements I
12 {
13   public static void main(String[] args)
14   {
15     // Defining c as either I or C will work.
16     A c = new pr8823();
17     c.m();
18   }
19 
20   public void m()
21   {
22     System.out.println("Hello World!");
23   }
24 }
25