Java-интерфейс с классами для объема и площади фигур - PullRequest
0 голосов
/ 02 апреля 2019

Я очень хорошо знаком с Java и хотел бы знать, как правильно использовать интерфейс для соединения классов.

Допустим, в пакете Y есть интерфейс X для объема и областиshape

package Y;

public interface Shape {
    public double volume();

    public double surfaceArea();
}

Учитывая класс, называемый тетраэдр, где математика для объема и области соответственно

package Y;

public class Tetrahedron implements Shape{
    Tetrahedron(double edge) {
        (volume) Math.pow(edge, 3)/(6*Math.sqrt(2));
        (area) Math.sqrt(3)*Math.pow(edge, 2);
    }
}

К которому затем снова обращается основной класс, также в пакете Y

package Y;

public class Main {
    static void main(String[] args){
        Shape a = new Tetrahedron(5);
        System.out.println(a.volume());
        System.out.println(a.surfaceArea());
    }
}

Как именно вы бы подключили интерфейс ко второму классу?Насколько я знаю, вы не можете просто переопределить значения volume и surfaceArea, выполнив что-то вроде volume = x, так как именно можно использовать интерфейс для перехода от A к B к C?

1 Ответ

1 голос
/ 02 апреля 2019

Я думаю, вы должны так поступить.

public interface Shape {
    public double volume();

    public double surfaceArea();
}

public class Tetrahedron implements Shape{
    double edge;
    Tetrahedron(double edge) {
        this.edge=edge;
    }

    @Override
    public double volume(){
         return Math.pow(edge, 3)/(6*Math.sqrt(2));
    }

    @Override
    public double surfaceArea(){
         return Math.sqrt(3)*Math.pow(edge, 2);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...