Сильно рекомендую почитать "Паттерны проектирования" (O'relly Эрик и Элизабет Фриман), очень много подобных вопросов исчезнет сразу и писать будет намного проще.
Для Вашей ситуации предусмотрены абстрактные классы. К примеру:
public abstract class MyClass{
//Ваши общие методы реализованны тут
// Подсчет тока по каждому двигателю
private float getCurrent(int engine){
float phasesA = calculatePhaseForEngine(0, MassCurrentsPhases, engine);
float phasesB = calculatePhaseForEngine(1, MassCurrentsPhases, engine);
float phasesC = calculatePhaseForEngine(2, MassCurrentsPhases, engine);
return (phasesA + phasesB + phasesC) / 3;
}
// Подсчетываем ток по выбраному двигателю
private static float calculatePhaseForEngine(int i, float[] MassCurrentsPhases, int currentEng) {
return MassCurrentsPhases[3 * currentEng + i];
}
public abstract void doSomething(); //Такие методы наследники будут обязаны реализовать
}
Дальше наследуетесь от абстрактного класса и реализуете методы которые отличаются логикой. Кода становится меньше, читается и понимается лучше и накосячить уже сложнее т.к. общие методы гарантировано у всех одинаковые.