Java FAQ:Class.forName() で取得したクラスのメソッドを呼び出す

Java FAQ:S011 Q-21

基本的にまんま

interface C2008050201 {
  abstract void foo(int x);
}

class C2008050202 implements C2008050201 {
    public void foo(int x) {
        System.out.println("foo: " + x);
    }
}

public class C2008050200 {
    public static void main(String[] args) {
        try { 
            Class targetClass = Class.forName("C2008050202");
            C2008050201 targetInstance = (C2008050201)targetClass.newInstance();
            targetInstance.foo(100);
        } catch (ClassNotFoundException e) {
        } catch (InstantiationException e) {
        } catch (IllegalAccessException e) {
        }
    }
}

で、

foo: 100

「abstract Foo {」は「abstract class Foo {」じゃなきゃダメ?