编一个求长方形面积程序,
要求用 super 和 继承 以下是我自己弄得 运行显示null 劳驾帮忙改改。
感谢 public class Figure {

protected String Figure;

public void print(){
System.out.println("Figure Rectangle :"+Figure);

} public String getFigure(){
return Figure;
}
public void setFigure(String n){
Figure=n;
}}public class Rectangle extends Figure { private double Rectangle;
private double width;
private double height; public double getRectangle(double r) { return (r = width*height);
} public void setRectangle(double r) {
Rectangle = r;
} public void print(double r) {
System.out.println("num " +Figure+"["+r+"]");
}}public class width extends Figure {
private double width;
public double getwidth(){
return width;
} public double setwidth(double w){
return width=w;
}
    public void print(double w){
     System.out.println("width= "+Figure+"["+width+"]");
    }
}public class height extends Figure{
private double height; public double getheight() {
return height;
} public double setheight(double h) {
return height = h;
}
public void print(double h){
     System.out.println("height= "+Figure+"["+height+"]");
    }
}
public class RectangleTest {
public static void main(String args[]){
height h= new height();
h.setheight(5);
h.print();
width w= new width();
w.setwidth(6);
w.print();
Rectangle r= new Rectangle();
r.setRectangle(height*width);
r.print();
}}

解决方案 »

  1.   

    Figure 一直都是默认初始化的null。
    你每次继承时记得把它初始化了。
      

  2.   

    楼主的继承太另类了
    width/height继承Figure???
    把要求说明白些吧
      

  3.   


    就是编一个 求长方形面积的下面是给出条件
    Figure
    #name:String
    +print():void
    +getArea():double
    +setName(n:String):void
    +getName():String
         ↑
    Rectangle
    -width:double
    -height:double
    +Rectangle(w:double,h:double)
    +getArea():double
    +print():void要求Figure继承长方形表示Rectangle Class做成
    用宽和长求出面积
    输出 宽和长的长  和面积
     
      

  4.   

    lz 首先你说的不明白 其次你的代码太乱 新手更应该注意规范 你可以参考一下这个程序自己再写一个
    ps: 不动手永远不会写程序
    Figure.java
    package com.zhoujl.test;abstract public class Figure { protected String name; abstract public void print(); abstract public double getArea(); public void setName(String n) {
    this.name = n;
    } public String getName() {
    return name;
    }
    }Rectangle.java
    package com.zhoujl.test;public class Rectangle extends Figure { private double width;
    private double height; public Rectangle(double width, double height) {
    super();
    this.width = width;
    this.height = height;
    } @Override
    public double getArea() {
    return width * height;
    } @Override
    public void print() {
    System.out.println("长方形的宽是:"+width+"长方形的长是"+height+"面积是:"+getArea());
    }

    public static void main(String[] args) {
    Rectangle rectangle = new Rectangle(1.0, 3.0);
    rectangle.print();
    }}
    我写的并不一定也很对 但我想比你上边的清晰多了 lz加油
      

  5.   

    public class Figure {
        
        protected String Figure;
        
        public void print(){
            System.out.println("Figure Rectangle :"+Figure);
            
        }......
    你的最后一句 r.print(); 输出的是Figure的值,Figure在你的程序中为null。所以输出null,
    可以别先写程序,先用文字,写下到底要做什么。
      

  6.   

    public abstract class Figure {
    private String name; public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void print() {
    System.out.println("Name:" + name + ";  Rectangle:" + getArea());
    }

    public abstract double getArea();
    }public class Rectangle extends Figure {
    private double width;
    private double height;

    public Rectangle(double w, double h) {
    this.width = w;
    this.height = h;
    }

    public double getArea() {
    return width * height;
    }

    public void print() {
    super.print();
    }
    }public class RectangleTest {
    public static void main(String args[]) {
    Figure f = new Rectangle(3.3, 5.5);
    f.setName("Figure");
    f.print();
    }
    }大概是这个吧  .....
      

  7.   

    文件:Figure.javapublic class Figure {
        protected String Figure;
        public void print(){
            System.out.println("Figure Rectangle :"+Figure);
            
        }
        public String getFigure(){
            return Figure;
        }
        public void setFigure(String n){
            Figure=n;
        }
    }class Rectangle extends Figure {
        private double Rectangle;
        private double width;
        private double height;
        public double getRectangle(double r) {
            return (r = width*height);
        }
    //  删掉
    //    public void setRectangle(double r) {
    //        Rectangle = r;
    //    }
        public void print(double r) {
            System.out.println("num " +Figure+"["+r+"]");
        }
    //  添加
    public void setWidth(double width) {
    this.width = width;
    }
    //  添加
    public void setHeight(double height) {
    this.height = height;
    }
    }class width extends Figure {
        private double width;
        public double getwidth(){
            return width;
        }
        public double setwidth(double w){
            return width=w;
        }
        public void print(double w){
            System.out.println("width= "+Figure+"["+width+"]");
        }
    }class height extends Figure{
        private double height;
        public double getheight() {
            return height;
        }
        public double setheight(double h) {
            return height = h;
        }
        public void print(double h){
            System.out.println("height= "+Figure+"["+height+"]");
        }
    }文件:RectangleTest.javapublic class RectangleTest {
        public static void main(String args[]){
    height h= new height();
    h.setheight(5);
    //父类与子类的print方法形成重载,此处调用父类的print()
    //h.print();
    //调用子类的print
    h.print(0.0);
    width w= new width();
    w.setwidth(6);
    //父类与子类的print方法形成重载,此处调用父类的print()
    //w.print();
    //调用子类的print
    w.print(0.0);
    Rectangle r= new Rectangle();
    //此处调用不正确
    //r.setRectangle(height*width);
    r.setHeight(h.getheight());
    r.setWidth(w.getwidth());
    //调用重载方法,
    r.print(0.0);
    //输出结果
    System.out.println(r.getRectangle(0.0));
        }
    }输出结果:height= null[5.0]
    width= null[6.0]
    num null[0.0]
    30.0