Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 15th, 2012  |  syntax: None  |  size: 1.39 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How do I convert an abstract class into an interface?
  2. public abstact class Foo
  3. {
  4.     private int bar;
  5.  
  6.     public static final int SOME_CONSTANT = 42;
  7.  
  8.     public Foo(b) {
  9.         this.bar = b;
  10.     }
  11.  
  12.     public abstract void doSomething(String s);
  13.  
  14.     protected int doSomethingElse() {
  15.         return this.bar * 2;
  16.     }
  17. }
  18.        
  19. public interface Foo
  20. {
  21.     int SOME_CONSTANT = 42;
  22.  
  23.     void doSomething(String s);
  24. }
  25.        
  26. public abstact class AbstractFoo implements Foo
  27. {
  28.     private int bar;
  29.  
  30.     public Foo(b) {
  31.         this.bar = b;
  32.     }
  33.  
  34.     public abstract void doSomething(String s);
  35.  
  36.     protected int doSomethingElse() {
  37.         return this.bar * 2;
  38.     }
  39. }
  40.        
  41. public abstract class SomeClass {
  42.        // some code here
  43.      public abstract void someMethod();
  44. }
  45.  
  46. public interface TargetInterface {
  47.      public void someMethodBlaBla();
  48. }
  49.        
  50. public class Adapter implements TargetInterface {
  51.    private SomeClass adaptee;
  52.  
  53.    public Adapter( SomeClass adaptee ) {
  54.        this.adaptee = adaptee;
  55.    }
  56.  
  57.    public void someMethodBlaBla() {
  58.        this.adaptee.someMethod();
  59.    }
  60.  
  61.    //delegate all calls to adaptee
  62. }
  63.        
  64. SomeClass abstractClassInstance = ... //get instance of your abstract class
  65. TargetInterface targetInterfaceInstance = new Adapter( abstractClassInstance );
  66.        
  67. public abstract class Abstract {
  68.   public abstract void method();
  69.   //...
  70. }
  71.        
  72. public interface Interface {
  73.   void method();
  74.   //...
  75. }