qq_56935938 2021-05-14 22:12 采纳率: 50%
浏览 19
已结题

为什么结果都是0呢?

public class shape
{
    static final double pi = 3.14;
    double length;
    double area;
    
    public double length(){
        return 0;
    }
    public double area(){
        return 0;
    }
}
 

public class circle extends shape{
    private double a;
    public circle(double r){
        a = r;
    }
    public double geta(){
        return a;
    }
    public void seta(double a){
        this.a = a;
    }
    @Override
    public double length(){
        return 2*pi*a;
    }    
    @Override
    public double area(){
        return pi*a*a;
    }
}
 

 

public class rectangle extends shape{
    private int m;
    private int n;
    
    public rectangle(int m,int n){
        this.m = m;
        this.n = n;
    }
    public int getm(){
        return m;
    }
    public void setm(int m){
        this.m = m;
    }
    public int getn(){
        return n;
    }
    public void setn(int n){
        this.n = n;
    }
    @Override
     public double length(){
         return 2*(m+n);     
     }
    @Override
     public double area(){
         return m*n;
     }
}
 

 

package shape;
import shape.shape;
import shape.circle;
import shape.rectangle;

import java.util.Scanner;

public class test {
    public static void main(String arg[]){
        shape[] shapes=new shape[2];
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入矩形的长和宽");
        int m=sc.nextInt();
        int n=sc.nextInt();
        shapes[0]=new rectangle(m,n);
        System.out.print("矩形的周长为:"+shapes[0].length);
        System.out.print("矩形的面积为:"+shapes[0].area);
        Scanner sd=new Scanner(System.in);
        System.out.println("请输入圆的半径");
        float r=sd.nextFloat();
        shapes[1]=new circle(r);
        System.out.print("圆的周长为:"+shapes[1].length);
        System.out.print("圆的面积为:"+shapes[1].area);
        
    }

}
 

结果:请输入矩形的长和宽
1
1
矩形的周长为:0.0矩形的面积为:0.0请输入圆的半径
1
圆的周长为:0.0圆的面积为:0.0

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-05-14 22:20
    关注

    你输出的length和area是基类的成员变量,你没有初始化,都是0.实际你想调用的是子类的length()和area()函数啊 

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line