package test.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;

public class Test implements EntryPoint {

  public void onModuleLoad() {
    Foo<String> foo = new MyFoo();
    foo.set("bar");
    Window.alert(foo.get());
  }
}

interface Foo<T> {
  T get();

  void set(T v);
}

abstract class AbstractFoo {
  String v;

  public String get() {
    return v;
  }

  public void set(String v) {
    this.v = v;
  }
}

class MyFoo extends AbstractFoo implements Foo<String> {
}
