白衣渡江lo 2021-04-03 19:25 采纳率: 66.7%
浏览 71
已采纳

请问这段java代码怎么修改?新手小白在线求救

package work;

//定义一个Shape接口,接口中含有一个抽象方法,此抽象方法接收一个double类型的参数
interface Shape
{
    double area(double x);
}

//定义一个Square类,实现Shape接口
class Square implements Shape
{
    double area(double x)
    {
        double a=x*x;
        return a;
        System.out.println("正方形的面积为    "+a);
    }
}

//定义一个Circle类,实现Shape接口
class Circle implements Shape
{
    double area(double x)
    {
        double a=3.14*x*x;
        return a;
        System.out.println("圆的面积为   "+a);
    }
}

public class Test02 {

    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub
        Square square=new Square();
        square.area(2.00);
        Circle circle=new Circle();
        circle.area(3.00);

    }

}

运行报错提示:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Cannot reduce the visibility of the inherited method from Shape

    at work.Square.area(Test02.java:12)
    at work.Test02.main(Test02.java:37)
 

  • 写回答

5条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-03 19:54
    关注

    每个方法会在 return 执行后结束,你把打印语句写在在了 return 后面,所以编译器认为 return 后面的语句都是无效的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • allway2 2021-04-03 19:43
    关注
    package work;
    
    //定义一个Shape接口,接口中含有一个抽象方法,此抽象方法接收一个double类型的参数
    interface Shape {
    	double area(double x);
    }
    
    //定义一个Square类,实现Shape接口
    class Square implements Shape {
    	public double area(double x) {
    		double a = x * x;
    		System.out.println("正方形的面积为    " + a);
    		return a;
    	}
    }
    
    //定义一个Circle类,实现Shape接口
    class Circle implements Shape {
    	public double area(double x) {
    		double a = 3.14 * x * x;
    		System.out.println("圆的面积为   " + a);
    		return a;
    	}
    }
    
    public class Test02 {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Square square = new Square();
    		square.area(2.00);
    		Circle circle = new Circle();
    		circle.area(3.00);
    	}
    }
    

    正方形的面积为    4.0
    圆的面积为   28.259999999999998
     

    评论
  • CSDN专家-三岁丫 2021-04-03 20:59
    关注
    // return 代表的是一个方法执行的结束,如果有返回参数的话,它还能返回参数。
    // 我给你举个例子
    // 1. 如果是没有返回值的方法的话,是不需要 return 的
    public void test() {
    
    	System.out.println("fdsf");
    }
    
    // 2. 如果没有返回值,也是可以使用 return 的
    
    public void test(int a) {
    
    	System.out.println("1");
    	if (a == 1) {
    		// 注意,这里 return 后面没有参数,直接以引号结束的
    		// 如果执行了 return,后面的代码就不会执行了
    		// 这种写法在编程中称为自卫式写法
    		return;
    	}
    	System.out.println("2");
    	System.out.println("3");
    
    }
    
    // 这种写法也是可以的,如果 if 中的代码过长或者还有嵌套的话,看上去就不好了
    public void test(int a) {
    	
    	System.out.println("1");
    	if (a != 1 ) {
    		System.out.println("2");
    		System.out.println("3");
    	}
    }
    
    // 3. 如果是有返回值,则必须有 return ,并且 return 后面要带上对应类型的参数
    public int test() {
    
    	System.out.println("fdsf");
    	return 1;
    }
    评论
  • 白衣渡江lo 2021-04-03 20:19
    关注

    评论
  • 有问必答小助手 2021-04-03 23:06
    关注

    您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 电脑画面同步投屏,通过同wifi的方式投屏方法,接收投屏端不需要安装第三方软件,
  • ¥15 有偿拼接大疆精灵4RGB影像
  • ¥15 Arduino实现音频混响
  • ¥15 cuda.jit加速报错
  • ¥15 Octave 安装工具箱出错 Only Win32 target is supported!
  • ¥15 docker save的不能在另一台设备运行
  • ¥15 Unity Animation Rigging使用问题
  • ¥15 mbedtls握手返回-7200
  • ¥30 c++ http服务器
  • ¥15 express连接mssql,每条额外附加了语句