看到一段程序打印系统时间用的代码是
Calendar ca1=Calendar.getInstance();
System.out.println(ca1.getTime());
问下为什么不写成
Calendar ca1=new Calendar();
System.out.println(ca1.getTime());
也就是为什么不用new关键字创建呢?这样为什么不会错?
不懂!我还是java初学者
追答也就等于一个类里面的静态方法!属于本类
那为什么建立类实例反而是错的呢?
追答因为Calendar这个类是一个抽象类,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor, jet, fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化
本回答被提问者采纳