История изменений
Исправление foror, (текущая версия) :
Вычисление площади треугольника и ромба.
В гугле мне выкинуло 7 формул для расчета ромба, некоторые из них эффективнее расчета через площадь треугольника. Но допустим даже вот это:
Площадь квадрата - частный случай площади прямоугольника.
Создаёшь абстрактный класс Rectangable и защищённый метод square(a, b) { return a * b; }
Наследуешь его квадратом и прямоугольником.
С треугольником и ромбом также square(b, h, boolean pair)
.
То, что в джаве нельзя наследовать несколько абстрактных классов - отдельный разговор. Можно выкрутиться через дефолтные методы в интерфейсе, но тоже не вариант светить защищёнными методами.
С другой стороны можно сделать так:
interface Triangable
int b()
int h()
boolean pair()
default int square() {...}
Исправление foror, :
Вычисление площади треугольника и ромба.
В гугле мне выкинуло 7 формул для расчета ромба, некоторые из них эффективнее расчета через площадь треугольника. Но допустим даже вот это:
Площадь квадрата - частный случай площади прямоугольника.
Создаёшь абстрактный класс Rectangable и защищённый метод square(a, b) { return a * b; }
Наследуешь его квадратом и прямоугольником.
С треугольником и ромбом также square(b, h, boolean pair).
То, что в джаве нельзя наследовать несколько абстрактных классов - отдельный разговор. Можно выкрутиться через дефолтные методы в интерфейсе, но тоже не вариант светить защищёнными методами.
С другой стороны можно сделать так:
interface Triangable
int b()
int h()
boolean pair()
default int square() {...}
Исходная версия foror, :
Вычисление площади треугольника и ромба.
В гугле мне выкинуло 7 формул для расчета ромба, некоторые из них эффективнее расчета через площадь треугольника. Но допустим даже вот это:
Площадь квадрата - частный случай площади прямоугольника.
Создаёшь абстрактный класс Rectangable и защищённый метод square(a, b) { return a * b; }
Наследуешь его квадратом и прямоугольником.
С треугольником и ромбом также square(b, h, boolean pair).
То, что в джаве нельзя наследовать несколько абстрактных классов - отдельный разговор. Можно выкрутиться через дефолтные методы в интерфейсе, но тоже не вариант светить защищёнными методами.
С другой стороны можно сделать так:
interface Triangable int b() int h() boolean pair()
default int square() {…}