本帖最后由 黑马张伟 于 2012-1-3 08:15 编辑  
 
编写一个完整的Java 程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下: 
⑴接口ShapeArea: 
①接口方法 
double getArea():求一个形状的面积 
double getPerimeter ():求一个形状的周长 
⑵类Rectangle: 
实现ShapeArea接口,并有以下属性和方法: 
①属性 
width: double型,表示长方形的宽度 
height:double型,表示长方形的长度 
②方法 
Rectangle(double w, double h):构造函数 
toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0” 
⑶Test类作为主类要完成测试功能 
① 生成Rectangle对象 
② 调用对象的toString方法,输出对象的描述信息 
 
下面是我写的答案 
interface ShapeArea //接口 
{ 
double getArea(); 
double getPerimeter(); 
} 
 
class Rectangle implements ShapeArea //类 
{ 
double width,height; 
Rectangle(double w,double h) 
{ width=w; 
height=h; 
} 
double getArea() 
{ double area; 
area=width*height; 
return area; 
} 
double getPerimeter() 
{ double perimeter; 
perimeter=2*width*height; 
return perimeter; 
} 
void toString() 
{ System.out.println("width="+width+","+"height="+height+","+"/n" 
+"perimeter="+getPerimeter()+","+"area="+getArea()); 
} 
} 
 
class Test 
{ 
public static void main(String args[]) 
{ 
Rectangle test=new Rectangle(4,6); 
test.toString(); 
} 
} 
 
错误提示 
F:\>javac Test.java 
Test.java:19: Rectangle 中的 getPerimeter() 无法实现 ShapeArea 中的 getPerimeter 
();正在尝试指定更低的访问权限;为 public 
double getPerimeter() 
^ 
Test.java:14: Rectangle 中的 getArea() 无法实现 ShapeArea 中的 getArea();正在尝 
试指定更低的访问权限;为 public 
double getArea() 
^ 
Test.java:24: Rectangle 中的 toString() 无法覆盖 java.lang.Object 中的 toString( 
);正在尝试指定更低的访问权限;为 public 
void toString() 
 |   
        
 
    
    
    
     
 
 |