java – Super()不能在我的extends类上工作

前端之家收集整理的这篇文章主要介绍了java – Super()不能在我的extends类上工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 java的新手,我正在做一个简单的程序,但我不知道为什么我在我的程序中遇到错误,当我尝试使用超级…有人可以解释我或我的错误是什么,因为它不接受super.myCoord()我应该更改或添加什么?
public class myCoord {

    private double coorX,coorY;

    public myCoord(){
        coorX = 1;
        coorY = 1;
    }

    public myCoord(double x,double y){
        coorX =  x;
        coorY = y;
    }

    void setX(double x){
        coorX = x;
    }

    void setY(double y){
        coorY = y;
    }

    double getX(){
        return coorX;
    }

    double getY(){
        return coorY;
    }

    public String toString(){
        String nuevo = "("+coorX+","+coorY+")";
        return nuevo;
    }

    public class Coord3D extends myCoord{
        private double coorZ;

        Coord3D(){
            super.myCoord(); // ---> I got an error here !!
            coorZ = 1;
        }

        Coord3D(double x,double y,double z){
            super.myCoord(x,y);  ---> Also here !!
            coorZ = z;

        }

        void setZ(double z){
            coorZ = z;
        }

        double getZ(){
            return coorZ;
        }

    }

解决方法

您应该使用点(.)运算符调用方法而不是构造函数.在这里,您使用点(.)调用超类’构造函数.

这就是为什么你会遇到这样的错误

The method myCoord() is undefined for the type myCoord

The method myCoord(double,double) is undefined for the type myCoord

使用这些来调用你的超级构造函数:super();和super(x,y);如下所示.

public class Coord3D extends myCoord {
    private double coorZ;

    Coord3D() {
        super(); // not super.myCoord(); its a constructor call not method call
        coorZ = 1;
    }

    Coord3D(double x,double z) {
        super(x,y);  // not super.myCoord(x,y); its a constructor call not method call
        coorZ = z;
    }
}

猜你在找的Java相关文章