日期:2014-05-20  浏览次数:20630 次

关于私有构造方法,和继承问题,求各位高手解答!!
 
 可以告诉我这两有什么区别吗,干嘛第二个代码,编译时出现 错误: AB()可以在AB中访问private
public class CsdnTest extends AB { 一:

class AB {
  static{
  System.out.println("我来了。。。AB");
  }
  private static AB obj = new AB();
 private AB() {
  System.out.println("我来了。。。AB构造函数");
  }

  public static AB getInstance() {
  System.out.println("我来了。。。实例");
  return obj;
  }
}
  public class CsdnTest {
  static{
  System.out.println("我来了。。。CsdnTest");
  }
  public static void main(String[] args) {
  System.out.println("我来了。。。main");
  AB obj = AB.getInstance();  
  }
  }


二:

class AB {
  static{
  System.out.println("我来了。。。AB");
  }
  private static AB obj = new AB();
 public AB() {
  System.out.println("我来了。。。AB构造函数");
  }

  public static AB getInstance() {
  System.out.println("我来了。。。实例");
  return obj;
  }
}
  public class CsdnTest extends AB {
  static{
  System.out.println("我来了。。。CsdnTest");
  }
  public static void main(String[] args) {
  System.out.println("我来了。。。main");
  AB obj = AB.getInstance();  
  }
  }


------解决方案--------------------
如果一个类中只有一个构造方法,且被声明为private,那与将这个类声明为final无异