У меня есть 2 класса, Foo и BabyFoo, который наследует Foo. В основном методе я создаю объект Foo f1 = new BabyFoo(3);
. У метода BabyFoo есть метод сравнения, который переопределяет его родительский метод, который сравнивается, чтобы убедиться, что объект имеет один и тот же класс, и убедитесь, что свойство thing
имеет то же значение.Java - Сравнить дочернее свойство объекта родительского класса
Моего вопроса, в методе compare
в BabyFoo
классе, как я получить доступ к thing
свойства arguement получения прошло в, как это типа Foo
, как Foo
класса не имеет thing
свойства, хотя он был создан как new BabyFoo(3)
.
public abstract class Foo
{
public boolean compare(Foo other)
{
//compare checks to make sure object is of this same class
if (getClass() != other.getClass())
return true;
else
return false;
}
}
public class BabyFoo extends Foo
{
protected int thing;
public void BabyFoo(int thing)
{
this.thing = thing;
}
@Override
public boolean compare(Foo other)
{
//compares by calling the parent method, and as an
//additional step, checks if the thing property is the same.
boolean parent = super.compare(other);
//--question do-stuff here
//how do I access other.thing(), as it comes in
//as a Foo object, which doesn't have a thing property
}
}