在Java中,对象与对象之间可以互相赋值,但是这实际上是将对象的引用进行赋值,而不是对象本身的复制。当一个对象赋值给另一个对象时,它们将引用同一个内存地址,因此对其中一个对象的修改会影响到另一个对象。
例如,假设有两个类`Person`和`Student`,其中`Student`是`Person`的子类。可以将一个`Student`对象赋值给一个`Person`类型的变量,因为`Student`是`Person`的扩展。
代码示例如下:
Person person = new Person();
Student student = new Student();person = student; // 将student对象赋值给person变量
在这个例子中,`student`对象被赋值给了`person`变量,它们引用同一个内存地址。因此,对`person`的修改也会影响到`student`。
需要注意的是,如果将一个父类对象赋值给一个子类类型的变量,需要进行类型转换。如果父类对象实际上是子类的实例,那么可以使用类型转换将其赋值给子类类型的变量。但是,如果父类对象不是子类的实例,那么在运行时会抛出`ClassCastException`异常。
总结起来,Java中的对象与对象之间可以互相赋值,但是这实际上是将对象的引用进行赋值,而不是对象本身的复制。