fork download
  1. class Foo {
  2. abstract static class Animal<A extends Animal<A>> {
  3. abstract A copyAnimal(A animal);
  4. }
  5.  
  6. static class Duck<D extends Duck<D>> extends Animal<D> {
  7. void quack() {}
  8.  
  9. D copyAnimal(D duck) {
  10. duck.quack();
  11. return duck;
  12. }
  13. }
  14.  
  15. static class Mallard extends Duck<Mallard> {
  16. Mallard copyAnimal(Mallard duck) {
  17. duck.quack();
  18. return duck;
  19. }
  20. }
  21.  
  22. public static void main(String[] args) {}
  23. }
  24.  
Success #stdin #stdout 0.08s 27708KB
stdin
Standard input is empty
stdout
Standard output is empty