Class a
{
 private a()
 public a getInstance()
 {
    return new a();
 }
}

解决方案 »

  1.   

    抱歉,写错了
    Class a
    {
     private a()
     public static a getInstance()
     {
        return new a();
     }
    }
      

  2.   

    要有非抽象的子类才可以实例话
    先定义一个子类,然后在子类定义getInstance方法,就可以了
      

  3.   

    abstract class Demo
    {
        public Demo(){
         }
        
            
       public void S(){
           System.out.println("OK");
        }
    }
    class NewDemo extends Demo{
       
       public NewDemo(){
          super();
       }
       
       public static Demo getInstance(){
           return new NewDemo();
       }
        
    }public class Test{
        public static void main(String args[]){
            Demo s = NewDemo.getInstance();
            s.S();
        }

    }做得比较难看些
    不过我的水平只能做成这样
    谁还有更好的方法说来听听
      

  4.   

    abstract class Demo
    {
        public Demo(){
         }
        
            
       public void S(){
           System.out.println("OK");
        }
    }
    class NewDemo extends Demo{
       
       public NewDemo(){
          super();
       }
       
       public static Demo getInstance(){
           return new NewDemo();
       }
        
    }public class Test{
        public static void main(String args[]){
            Class demo = Class.forName(NewDemo);
            Demo s = (Demo)demo.getInstance();
            s.S();
        }

    }
      

  5.   

    abstract class Demo
    {
        public Demo(){
         }
        
            
       public void S(){
           System.out.println("OK");
        }
    }
    class NewDemo extends Demo{
       
       public NewDemo(){
          super();
       }
       
       public static Demo getInstance(){
           return new NewDemo();
       }
        
    }public class Test{
        public static void main(String args[]){
            Class demo = Class.forName("NewDemo");
            Demo s = (Demo)demo.getInstance();
            s.S();
        }

    }
      

  6.   

    也许这样更加让人觉得舒服吧
    package lm; import java.lang.Class;
    public abstract class Demo{

    String strDemo = null;
        
        public Demo(){
         super();
        }
        
        public static synchronized Demo getInstance(){        
           
           try
           {
               Class class1 = Class.forName("lm.NewDemo");
               return (Demo)class1.newInstance();
               
           }
           
           catch(InstantiationException _ex) { System.out.println("Instan...");}
           catch(ClassNotFoundException _ex) { System.out.println("ClassNot...");}
           catch(IllegalAccessException _ex) { System.out.println("Illega...");}
           return null;
        
           }
        
        public void setDemo(String str){
           this.strDemo=str;
           
        }
       
        public String getDemo(){
           return this.strDemo;
        }
    }
    package lm; public class Test{
    public static void main(String args[]){

    Demo demo =Demo.getInstance();
    demo.setDemo("Fuck...");
    System.out.println(demo.getDemo());
    }

    }
    package lm; public class NewDemo extends Demo{

         
       public NewDemo(){
         
       }
       
    }