Каждый раз, когда вы создаете Pet , вы получаете различное youngestAge со значением 9999 для этого объекта. Таким образом, каждый раз он сравнивает последние petAge с 9999 и дает вам последние petAge , так как введенный вами petAge меньше 9999.
Если вам нужно хранить наименьший возраст, храните его в статическом поле. Причина сохранения избыточного поля для хранения наименьшего возраста для всех объектов избыточна для памяти.
Если вы хотите получить желаемый результат с существующим дизайном, сделайте следующее:
Сделать youngestAge статическим:
static int youngestAge=9999;
А также не забудьте сделать метод статичным. Больше нет необходимости делать его объектным свойством, обе переменные поля, которые он использует, являются статическими.
public static int getYoungestPet()
{
if (petAge<youngestAge)
youngestAge=petAge;
return youngestAge;
}