class Deneme{
public static void main(String[] args) {
Object circle1 = new Circle();
Object circle2 = new Circle();
System.out.println(circle1.equals(circle2));
}
}
class Circle{
double radius;
public boolean equals(Circle circle) {
return this.radius == circle.radius;
}
}
И
class Deneme{
public static void main(String[] args) {
Object circle1 = new Circle();
Object circle2 = new Circle();
System.out.println(circle1.equals(circle2));
}
}
class Circle{
double radius;
@Override
public boolean equals(Object circle) {
return this.radius == ((Circle)circle).radius;
}
}
У меня проблемы с этими кодами. У меня два вопроса. Во-первых, в первом примере я знаю, что equals () не переопределяется. В основном методе я создал объекты circle1 и circle2, объявленные типы которых - Object. Затем мы вызываем метод equals (), но метод equals () принимает только те параметры, объявленные типы которых - Circle. Как это может быть возможно? Код выполняется без проблем.
Во-вторых, когда я пытался запустить коды, я получил «false» для первого примера и «true» для второго в консоли. Можете ли вы объяснить логи c за этими кодами? Что мы пытаемся здесь доказать? Что изменилось, когда я изменил сигнатуру метода equals () с Circle circle на Object circle?