JAVA:它不是没有指针,而是对指针进行了伪装:使用上泛化、强化和简单化,概念上淡化和弱化。。。 C++中可以有对象类型的变量和对象指针类型,两者的区别如下: Object oo = Object(); Object * oop = new Object(); 也就是说当使用new方式时,是动态为对象分配内在并将地址赋给oop这个指针变量。 JAVA中只有一种相关类型:对象类型,可是它的表现形式却是这样的: Object oo = new Object(); 比较一下,原来它就是使用了C++的动态内在分配方式创建了一个对象,并把地址返回给了oo变量,也就是说oo本质上就是一个指针变量
C++是支持多重继承的,但JAVA是单一继承的,让所有的类都继承 Object 也有好处,比如垃圾收集很有利;C++支持直接操作指针,一个指针可以指向任何一个对象,而JAVA不直接操作指针,所有的类都继承 Object 方便对象之间的转换。 |