4-3抽象类课后疑问路过的大侠给看看哪里不对的谢谢

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

ART原艺美学

2017-03-08 16:56

父类
package imooc02;

public abstract class Shape {
    public abstract void Perimeter();
    public abstract void Area();

}
子类01
package imooc02;

public class Rectangle extends Shape {

    @Override
    public void Perimeter() {
        // TODO Auto-generated method stub
        double a;
        double b;
        double c;
        double c= (a+b)*(a+b);
        System.out.println("长方形的周长为"+c);
        }
    

    @Override
    public void Area(){
        // TODO Auto-generated method stub
            double a ;
            double b;
            double s;
        double s= a*b;
        System.out.println("长方形的的面积为"+s);

    }

}
子类02
package imooc02;

public class Circle extends Shape {

    @Override
    public void Perimeter(){
        // TODO Auto-generated method stub
        double π;
        double d;
        private double c ;
        private double c= π*d;
        System.out.println("圆的周长是:"+c);
        

    }

    @Override
    public void Area(){
        // TODO Auto-generated method stub
        double π;
        double  d;
        double s;
        double s= π*((d/2)*(d/2));
        System.out.println("圆的面积是:"+s);

    }

}     

测试类
package imooc02;

public class Test {
    public static void main(String[] args) {
        Shape a1=new Rectangle();
        a1.Perimeter();
        a1.Area();
        Shape a2=new Circle();
        a2.Perimeter();
        a2.Area();
    }

}


写回答 关注

3回答

  • 蓝_尘
    2017-03-08 17:55:57
    已采纳

    将double π 定义为常量 final PI=3.14;试试

    ART原艺美...

    非常感谢!

    2017-03-09 08:15:12

    共 3 条回复 >

  • kirito_yes
    2017-03-18 13:17:47

    既然一个类里面两个方法的变量都一样的话,可以直接拿出来啊,在类里定义写一遍就好了。

  • ART原艺美学
    2017-03-08 18:44:29
    父类
    package imooc02;
     
    public abstract class Shape {
        public abstract void Perimeter();
        public abstract void Area();
     
    }
    子类
    package imooc02;
     
    public class Rectangle extends Shape {
     
        @Override
        public void Perimeter() {
            // TODO Auto-generated method stub
            double a=10.0;
            double b=10.0;
            double c;
             c= (a+b)*2;
            System.out.println("长方形的周长为"+c);
            }
         
     
        @Override
        public void Area(){
            // TODO Auto-generated method stub
                double a=10.0 ;
                 
                double b=10.0;
                 
                double s;
             s= a*b;
            System.out.println("长方形的的面积为"+s);
     
        }
     
    }
    子类02
     
    package imooc02;
     
    public class Circle extends Shape {
     
        @Override
        public void Perimeter(){
            // TODO Auto-generated method stub
            final double PI=3.14;
            double d=9.0;
             double c ;
               c= PI*d;
            System.out.println("圆的周长是:"+c);
             
     
        }
     
        @Override
        public void Area(){
            // TODO Auto-generated method stub
            final double PI=3.14;;
             double  d=9.0;
            double s;
             s= PI*(d/2);
            System.out.println("圆的面积是:"+s);
     
        }
     
    }     
    测试类
    package imooc02;
     
    public class Test {
        public static void main(String[] args) {
            Shape a1=new Rectangle();
            a1.Perimeter();
            a1.Area();
            Shape a2=new Circle();
            a2.Perimeter();
            a2.Area();
        }
     
    }
     
    长方形的周长为40.0
    长方形的的面积为100.0
    圆的周长是:28.26
    圆的面积是:14.13


Java入门第二季 升级版

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

530655 学习 · 6091 问题

查看课程

相似问题