在Column类中,perimeter和area变量没有定义。这是因为这两个变量是在Rectangle类中定义的,而在Column类中没有直接访问这两个变量的权限。

解决这个问题可以有两种方法:

  1. 在Column类中重新计算周长和面积,而不是直接访问Rectangle类中的变量。可以通过调用Rectangle类中的perimeter()和area()方法来获取这两个值。
  2. 将perimeter和area变量定义为protected,这样子类可以直接访问这两个变量。在Rectangle类中将这两个变量的访问修饰符改为protected即可。

下面是第一种解决方法的修改代码示例:

public class Rectangle {
    int length;
    int wide;

    public Rectangle(int length, int wide) {
        this.length = length;
        this.wide = wide;
    }

    public Rectangle() {}

    //周长
    public int perimeter() {
        return (length+wide)*2;
    }

    //面积
    public int area() {
        return length*wide;
    }
}

//四棱柱
public class Column extends Rectangle {
    int height;

    public Column(int length, int wide, int height) {
        super(length, wide);
        this.height = height;
    }

    public Column() {}

    //表面积
    public void surfaceArea() {
        int surfaceArea = perimeter()*height + area()*2;
        System.out.println("表面积是:"+surfaceArea);
    }

    //体积
    public void volume() {
        int volume = area()*height;
        System.out.println("体积是:"+volume);
    }
}

在Column类中,perimeter()方法和area()方法被修改为返回周长和面积的值,然后在计算表面积和体积时调用这两个方法获取相应的值

public class Rectangle 	int length; 	int wide; 	 	public Rectangleint length int wide 		thislength = length; 		thiswide = wide; 	 	 	public Rectangle 	 	周长 	public void perimeter 		int perimeter =

原文地址: https://www.cveoy.top/t/topic/hRXi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录