问答详情
源自:10-3 Java 中的抽象类

问一个关于多态和继承相关的问题。

public abstract class Shape {
	public abstract void getPerimeter();
	public abstract void getArea();
 }

这是我先实现的一个抽象的父类Shape;

public class Rectangle extends Shape {
	int length;
	int wide;
	public void getPerimeter() {
	        System.out.println("矩形的周长为:"+(length+wide)*2);
	 }
	 public void getArea() {
	 	System.out.println("矩形的面积为:"+length*wide);	
	 }
}

这是我实现的一个继承Shape父类的一个子类Rectangle;

现在我用多态的方法 Shape rectangle = new Rectangle();  用父类引用子类

public class Initial {
	public static void main(String[] args) {
	Shape rectangle = new Rectangle();
	rectangle.length = 10;
	rectangle.width = 5;
	Shape circle = new Circle();
    }
}

那么问题来了,我要怎样才能给子类中的length和width赋值?

我上面的那两个赋值是错的;

希望你能帮我

提问者:无能狂怒人 2019-02-21 17:17

个回答

  • qq_慕数据6302774
    2019-02-22 00:34:46
    已采纳

    这个问题出现的原因可以在eclipse的报错说明里面找到,大概就是Shape类中没有length和width这两个变量,所以无法进行赋值.

    我们可以在Shape类中加上这两个变量,或者将第三段代码的第三行用如下代码替代:

    Rectangle rectangle = new Rectangle();


  • qq_慕姐9261892
    2019-03-26 17:49:19

    你可以在子类里面给他赋值 如 int lenght=10;int wide=5;这样就引用进去了