展开全部
你那个Shape类里面的抽象方法没有被子类实现,你以为实现了;
public abstract double perimeter();
和
public double perimeter(int r)
{
return 2*3.14*r;
}
这是不同62616964757a686964616fe4b893e5b19e31333332636431的方法,方法的参数列表不同;
你把public abstract double perimeter(); 改成public abstract double perimeter(int x);应该可以;
哦~~~~~~~~~~~~~~~~~~~~~~~~
我又看了下,你的类为什么都是public的,这样会报错的,让启动类是public就好了啊,其他的默认;
矣~~~~~~~~~~~~~~~~~
Circle c1=new Circle(5);
Square s1=new Square (4);构造方法为什么是这样,你的默认构造方法是没有参数的,你加了参数进去了,错误;
啊~~~~~~~~~~~~~~~~~~~~
System.out.println("圆周长为"+c1.perimeter());
System.out.println("矩形周长为"+s1.perimeter());
double totalPerimeter=c1.perimeter()+s1.perimeter();里面调用的方法们,明明是有参数的啊,但是你没有加上去,错误;
给你我改了的代码:abstract class Shape
{
public abstract double perimeter(int x);
}
class Circle extends Shape
{
int r;
public double perimeter(int r)
{
return 2*3.14*r;
}
}
class Square extends Shape
{
int x;
public double perimeter(int x)
{
return 4*x;
}
}
public class ShowPerimeter
{
public static void main(String[] args)
{
Circle c1=new Circle();
Square s1=new Square ();
System.out.println("圆周长为"+c1.perimeter(5));
System.out.println("矩形周长为"+s1.perimeter(4));
double totalPerimeter=c1.perimeter(4)+s1.perimeter(4);
System.out.println("总周长为"+totalPerimeter);
}
}
错误很多,不过没有关系的,学习么,不犯错怎么能学好呢!加油吧,我也是学习者,与君共勉!(我想知道为什么你的代码书写格式和我的为什么那么多不同,其实我也不知道哪种好看,哈哈)