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

来源:10-3 Java 中的抽象类

IluDuk0

2016-04-22 10:19

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回答

  • 慕粉3193798
    2016-04-22 14:25:43
    已采纳

    没毛病

    IluDuk...

    非常感谢!

    2016-04-30 16:07:52

    共 1 条回复 >

  • 怒放的生命012
    2016-05-24 13:54:05

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


  • 怒放的生命012
    2016-05-24 13:35:07

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


  • 难将就
    2016-05-03 17:00:11

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

    qq_一切随...

    确实,因为方法中是直接打印输出的,所以不用return 返回值类型是void 但是楼主的返回值类型不是void 所以必须要有return语句

    2016-05-07 20:34:08

    共 1 条回复 >

  • 慕无忌7510152
    2016-04-30 15:57:12

    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);
     }


  • 慕无忌7510152
    2016-04-30 15:56:11

    private加不加没啥用吧


  • IluDuk0
    2016-04-22 19:01:55

    return 一个值返回函数

  • 极客青山依旧
    2016-04-22 18:02:43

    用return是什么作用

  • 北城殇歌
    2016-04-22 14:41:12

    可以。。。

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530655 学习 · 6091 问题

查看课程

相似问题