Что плохого в моем коде тестового задания на java?
https://github.com/Sharabaddin/oop-examples/blob/m...
Почему переменная package-private, а не protected?
getStatfarad() у вас всегда возвращает picofarad * 3. Зачем писать три раза одно и то же ? Реализуйте этот метод в родителе.
То же самое, по-моему, можно сказать и про метод setStatfarad, но там кода много, "на глаз"  не видно, может и есть отличия.
Навскидку с телефона. 
Пользуйтесь интерфейсом когда нужно описать правила взаимодействия с объектом. Абстрактным  классом когда можно выделить некие общие моменты из классов. 
Т. Е конденсатор это интерфейс.  Как там храниться значение в цифрах это вопрос реализации.  Хоть в текстовом поле.  Но это может меняться и поэтому должно быть отделено.  
Т. Е.  Наследование лучше от интерфейса. 
2. Дублирование кода
Если случайное число =...
init
set
add
Иначе
init
set
add
...
INIT отличается,  но set add одни и те же. 
На то и обьктное наследование чтобы это выделять.