为了账号安全,请及时绑定邮箱和手机立即绑定

请老师看看我的代码对不对?

package absclass;

public abstract class Shape {//创建一个Shape抽象类
    public abstract double perimeter();//创建一个周长抽象方法,只做声明。
    public abstract double area();//创建一个面积抽象方法,只做声明。
}

public class Rectangle extends Shape {//创建一个Rectangle类继承Shape抽象类
    private int m=3;//Rectangle类私有属性
    private int n=3;//Rectangle类私有属性
    private int l;//Rectangle类私有属性
    private int s;//Rectangle类私有属性
    //重写抽象方法
    public double perimeter(){
        l=(m+n);
        System.out.println("矩形的周长为:"+l);
        return l;
    }
    //重写抽象方法
    public double area(){
        s=m*n;
        System.out.println("矩形的面积为:"+s);
        return s;
    }
}

public class Circle extends Shape {//创建一个Circle类继承Shape抽象类
    private final double pi=3.14;//创建一个双精度常量并赋值3.14。
    private double r=1.00;//Circle类私有属性
    private double c;//Circle类私有属性
    private double s;//Circle类私有属性
    //重写抽象方法
    public double perimeter(){
    c=2*pi*r;
    System.out.println("圆的周长为:"+c);
    return c;
    }
    //重写抽象方法
    public double area(){
    s=pi*r*r;
    System.out.println("圆的面积为:"+s);
    return s;
    }
}

//创建一个test测试类
public class test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Shape R=new Rectangle();//创建一个父类的对象指向子类的引用
        Shape C=new Circle();//创建一个父类的对象指向子类的引用
        R.perimeter();
        R.area();
        C.perimeter();
        C.area();    
    }
}

正在回答

9 回答

没毛病

0 回复 有任何疑惑可以回复我~
#1

IluDuk0 提问者

非常感谢!
2016-04-30 回复 有任何疑惑可以回复我~

楼主下次写的时候注意下: private int l;//Rectangle类私有属性;   public double perimeter();  return l;其中l是int型,而返回值是double ;不过这是向下的转换,系统应该会强制转换的,但是下次也要注意呀


0 回复 有任何疑惑可以回复我~

楼主下次写的时候注意下: private int l;//Rectangle类私有属性;   public double perimeter();  return l;其中l是int型,而返回值是double ;不过这是向下的转换,系统应该会强制转换的,但是下次也要注意呀


0 回复 有任何疑惑可以回复我~

在子方法中的return 不是没有任何作用了吗

0 回复 有任何疑惑可以回复我~
#1

qq_一切随风_3

确实,因为方法中是直接打印输出的,所以不用return 返回值类型是void 但是楼主的返回值类型不是void 所以必须要有return语句
2016-05-07 回复 有任何疑惑可以回复我~

public class Rectangle extends Shape {
 int a=1;
 int b=2;
 @Override
 public void zhouzhang() {
  // TODO Auto-generated method stub
  int zz=(a+b)*2;
  System.out.println("矩形周长为:"+zz);
 }


 @Override
 public void mianji() {
  // TODO Auto-generated method stub
  int mj=a*b;
  System.out.println("矩形面积为:"+mj);
 }


0 回复 有任何疑惑可以回复我~

private加不加没啥用吧


0 回复 有任何疑惑可以回复我~

return 一个值返回函数

0 回复 有任何疑惑可以回复我~

用return是什么作用

0 回复 有任何疑惑可以回复我~

可以。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请老师看看我的代码对不对?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信