当输出一个引用数据类型对象的时候输出地址值,其实就是使用了toString()
1.像String、Date、File、包装类都重写了Object类中的toString()方法使得在调用这些对象的时候,返回实体内容信息
2.可以自定义重写的内容,返回实体内容
问题
我重写子类equals方法为什么父类掉用equals的时候还是用的重写前的方法。
解决:我对方法的重写有个误解,在子类重写方法父类是不适用子类重写的方法的,父类重写方法子类是可以继承的。如果父类调用子类重写的方法可以通过给形参列表加入父类类型,输入子类对象的形式调用子类的方法。
package Practice;
import java.util.RandomAccess;
public class GeometricObject {
protected String color;
protected double weight;
protected double radius;
protected GeometricObject(){
color ="white";
weight =1.0;
radius =1.0;
}
public double getWeight() {
return weight;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void setWeight(double weight) {
this.weight = weight;
}
}
package Practice;
import java.util.Objects;
public class Circle extends GeometricObject{
private double radius;
public Circle(){
color="weight";
weight=1.0;
radius=1.0;
}
public Circle(double radius){
}
public Circle(double radius,String color,double weight){
}
@Override
public boolean equals(Object object) {
if (object ==this){
return true;
}else if (object instanceof Circle){
Circle circle =(Circle) object;
return circle.radius==this.radius&&circle.color==this.color&&circle.weight==this.weight;
}else {
return false;
}
}
@Override
public String toString() {
return "Circle{" +
"radius=" + radius +";color="+color+&#