A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈迎春 于 2013-3-17 09:49 编辑

  1. package cn.njit.extendsdemo;
  2. abstract class Shape//定义抽象类
  3. {
  4.         public abstract double getArea(/*Shape shape*/);
  5. }


  6. class Rectangle extends Shape//定义矩形继承shape
  7. {
  8.         private static double length,width;
  9.         public Rectangle(double length,double width)
  10.         {
  11.                 Rectangle.length = length;
  12.                 Rectangle.width = width;
  13.         }
  14.         public double getArea(/*Rectangle rectangle*/)
  15.         {
  16.                 return Rectangle.length*Rectangle.width;
  17.         }

  18. }

  19. class Square extends Rectangle//定义长方形继承Rectangle
  20. {
  21.         //private double length,width;
  22.         public Square(double length) {
  23.                 super(length, length);
  24.                 // TODO 自动生成的构造函数存根
  25.         }
  26.         
  27. }
  28. public class AbstractDemo {

  29.         /**
  30.          * @param args
  31.          */
  32.         public static void main(String[] args) {
  33.                 // TODO 自动生成的方法存根
  34.                 Square s = new Square(5);
  35.                 s.getArea();//求长方形的面积。为什么调用这个方法求不出结果呢?
  36.         }

  37. }
复制代码

点评

如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-16 23:07

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
因为在你getArea()方法中返回的是一个值。并未输出打印。所以你在屏幕上是看不到结果的。
你把最后一句改一下就好了。
代码我给你修正了。
  1. abstract class Shape//定义抽象类

  2. {

  3.         public abstract double getArea(/*Shape shape*/);

  4. }





  5. class Rectangle extends Shape//定义矩形继承shape

  6. {

  7.         private static double length,width;

  8.         public Rectangle(double length,double width)

  9.         {

  10.                 Rectangle.length = length;

  11.                 Rectangle.width = width;

  12.         }

  13.         public double getArea(/*Rectangle rectangle*/)

  14.         {

  15.                 return Rectangle.length*Rectangle.width;

  16.         }



  17. }



  18. class Square extends Rectangle//定义长方形继承Rectangle

  19. {

  20.         //private double length,width;

  21.         public Square(double length)
  22.                 {

  23.                 super(length, length);

  24.                 // TODO 自动生成的构造函数存根

  25.         }

  26.         

  27. }

  28. public class AbstractDemo
  29. {



  30.         /**

  31.          * @param args

  32.          */

  33.         public static void main(String[] args)
  34.                 {

  35.                 // TODO 自动生成的方法存根

  36.                 Square s = new Square(5);

  37.                 System.out.println(s.getArea());//将返回的值打印输出。

  38.         }



  39. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
没有输出语句加个System.out.print就OK了
你最后的语句已经进行计算了,但是没打印出来- -哈哈  不小心了吧
回复 使用道具 举报
何仕映 发表于 2013-3-16 21:36
因为在你getArea()方法中返回的是一个值。并未输出打印。所以你在屏幕上是看不到结果的。
你把最后一句改一 ...

谢谢,哎,基础不够好啊,把这个都给忘了!
回复 使用道具 举报
徐升2013 发表于 2013-3-16 21:37
没有输出语句加个System.out.print就OK了
你最后的语句已经进行计算了,但是没打印出来- -哈哈  不小心了吧 ...

谢谢,知道了呢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马