Современный стиль должен определить IPet и PetBase.
преимущество интерфейса состоит в том, что другой код может использовать его без любых связей вообще с другим исполняемым кодом. "Абсолютно чистый". Также интерфейсы могут быть смешаны.
, Но базовые классы полезны для простых реализаций и общих утилит. Поэтому обеспечьте абстрактный базовый класс также, чтобы сэкономить время и код.
Я искал решение, похожее на то, что вы ищете, согласившись с тем, что вы должны иметь возможность использовать массив Integer для чтения и сохранения целочисленного результата.
Решение этой проблемы, которое я нашел, было на http://kvance.livejournal.com/1039349.html , которое я нашел полезным.
Это не совсем решает проблему так, как я думал или так, как я думаю, вы хотите, вместо этого вы по-прежнему указываете свои начальные / выборочные значения с помощью массива String, хотя, когда ListPreference сохраняет его обратно в SharedPreferences, он сохраняет как целое число вместо строки (выполняет преобразование, когда пользователь выбирает его), избавляя от необходимости преобразовывать его, возможно, много раз по всему приложению при доступе к значению предпочтения.