Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java接口,具有用于形状体积和面积的类_Java_Oop_Math_Interface_Package - Fatal编程技术网

Java接口,具有用于形状体积和面积的类

Java接口,具有用于形状体积和面积的类,java,oop,math,interface,package,Java,Oop,Math,Interface,Package,我是Java的新手,我想知道如何正确使用接口来连接类 假设在Y包中有一个接口X,用于表示形状的体积和面积 package Y; public interface Shape { public double volume(); public double surfaceArea(); } 给定一个称为四面体的类,其中体积和面积的数学分别为 package Y; public class Tetrahedron implements Shape{ Tetrahedro

我是Java的新手,我想知道如何正确使用接口来连接类

假设在Y包中有一个接口X,用于表示形状的体积和面积

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=x之类的事情来覆盖volume和surfaceearea的值,那么如何使用接口从A到B到C呢?

我认为你应该这样做

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);
    }
}

也许你应该开始搜索什么是接口。但为了给您一个快速的信息,它用于强制实现它的类实现接口中描述的所有方法。所以你可能想在四面体类上实现shape,你的IDE会告诉你下一步该怎么做。我的IDE已经死了。此外,我还发现了很多关于接口是什么和它做什么的内容,但不是如何具体使用它,我发现的示例在我尝试使用它们时返回失败的结果。。接口不用于连接类,而是用于强制类的签名。因此,在您的情况下,您只需要像这个公共类四面体实现形状一样进行操作{…编译器现在会强制你实现volume和surfaceearea方法。我的意思是,在你创建方法之前,它会给你错误,也许这就是你得到的错误。因此,你可以使用重写来获得类对父/超类所述方法的特定实现的访问权,并强制值取所述覆盖的属性?我读过的所有文档都没有提到使用覆盖,而使用覆盖的文档也不是很深入,或者如何正确使用它将覆盖推到变量上也不是很有帮助。因此,我们不是在四面体中启动边,而是提前启动它,而是使用一个指针?注意到界面是一个单独的文档,因为我的IDE需要它,除了classesTsk之外,另一个谈论多态性的人删除了他们的帖子,没有记住他们的名字。想在这一点上挑出他们的想法。一个简单的相关示例能比告诉别人看同一个页面有多大帮助,这真是令人惊讶海利文件。