java 接口实现类编译显示不是抽象类,未覆盖抽象方法问题?

接口代码:
interface Js{
public double mjjs();
public double zcjs();
}
两个实现类代码:
正方形
class Zfx implements Js{
double a;
public double mjjs(double a){
double zfxmj = a * a;
return zfxmj;
}
public double zcjs(double a){
double zfxzc = a * 4;
return a * 4;
}
}

class Circle implements Js{
double A = 3.14;
public double mjjs(double r){
double circlemj= A*r*r;
return circlemj;
}
public double zcjs(double r){
double circlezc = A*2*r;
return circlezc;
}
}

测试类
class TestJs{
public static void main(String[] args){
Zfx zfx = new Zfx();
double zfxmj=zfx.mjjs(4.0);
double zfxzc=zfx.zcjs(4.0);
Circle circle =new Circle();
double circlemj=circle.mjjs(2.0);
double circlezc=circle.zcjs(2.0);
System.out.println(zfxmj);
System.out.println(zfxzc);
System.out.println(circlemj);
System.out.println(circlezc);
}
}

请大神帮我看下,哪里出问题了

2个回答

你应该是重载了,你接口中的方法没有元素但继承后类中方法里有元素了

interface Js{
public double mjjs(double a);
public double zcjs(double a);
}

class Zfx implements Js{
double a;
public double mjjs(double a)
{
double zfxmj=a*a;
return zfxmj;
}

public double zcjs(double a)
{
    double zfxzc=a*4;
    return zfxzc;
}

}

class Circle implements Js{
double A = 3.14;
public double mjjs(double r){
double circlemj= A*r*r;
return circlemj;
}
public double zcjs(double r){
double circlezc = A*2*r;
return circlezc;
}
}
public class test {
public static void main(String[] args)
{
Zfx zfx = new Zfx();
double zfxmj=zfx.mjjs(4.0);
double zfxzc=zfx.zcjs(4.0);
Circle circle =new Circle();
double circlemj=circle.mjjs(2.0);
double circlezc=circle.zcjs(2.0);
System.out.println(zfxmj);
System.out.println(zfxzc);
System.out.println(circlemj);
System.out.println(circlezc);
}
}

qiancat
qiancat 谢谢,确实是重载了,不是重写,刚学Java一星期,代码写的少,概念不是太清晰。谢谢指点。
一年多之前 回复

你这样写报错了吧,报错不就知道是什么问题了吗,你实现了接口,接口里的方法都是抽象方法,你重载了这个方法而没有重写这个方法

qiancat
qiancat 谢谢,确实是重载了,不是重写,刚学Java一星期,代码写的少,概念不是太清晰。谢谢指点。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问