新手。有个编程问题请各位大神帮忙。。跪求拜托了。JAVA中的继承和多态问题
要求利用继承和多态的知识设计一组用于图形处理的1、设计一个抽象类MyShape,它两个抽象方法:求图形面积和图形周长(返回类型为double,无参数)
2、设计一个MyShape的子类MyCircle表示圆,它有一个成员变量:半径radius(double类型);两个自己的成员方法:get_radius和set_radius分别获取和修改半径,它继承并实现了MyShape的两个抽象方法
3、设计一个MyShape的子类MyRectangle表示矩形,它有两个成员变量:长length(double类型)和宽width(double类型);四个自己的成员方法:get_length、set_length、get_width、set_width分别获取、修改长和宽,它继承和实现了MyShape的两个抽象方法
4、定义一个接口ShowShape,它只有一个方法:显示图形信息(无返回值、无参数),让MyShape实现这个接口。但类体内不具体实现接口方法,由MyCircle和MyRectangle继承父类的这个接口,并在各自的类内用System.out.println()语句将他们的信息输出
4、最后设计一个测试类TestMyShape,用来测试上述设计的类与接口中的各个方法能否正常运行
----------------解决方案--------------------------------------------------------
interface ShowShape{
public void print();
}
abstract class MyShape implements ShowShape{
public abstract double mianji();
public abstract double zhouchang();
}
class MyCircle extends MyShape{
private double radius;
public static final double PI=3.1415926;
public void setRadius(double radius){
this.radius=radius;
}
public double mianji(){
return this.radius*this.radius*PI;
}
public double zhouchang(){
return this.radius*2*PI;
}
public double getRadius(){
return this.radius;
}
public void print(){
System.out.println("半径为"+getRadius()+"的圆形面积为: "+mianji()+",周长为 :"+zhouchang());
}
}
class MyRectangle extends MyShape{
private double length;
private double width;
public void setLength(double length){
this.length=length;
}
public void setWidth(double width){
this.width=width;
}
public double getLength(){
return this.length;
}
public double getWidth(){
return this.width;
}
public double mianji(){
return this.length*this.width;
}
public double zhouchang(){
return 2*(this.length+this.width);
}
public void print(){
System.out.println("长为:"+getLength()+",宽为 :"+getWidth()+"的钜形面积为: "+mianji()+",周长为 :"+zhouchang());
}
}
public class TestMyShape {
public static void main(String args[]){
MyCircle circle=new MyCircle();
circle.setRadius(10);
circle.print();
MyRectangle retangle=new MyRectangle();
retangle.setLength(10);
retangle.setWidth(5);
retangle.print();
}
}
----------------解决方案--------------------------------------------------------
我也是刚看Java一个多星期,只会这样写了。。。
----------------解决方案--------------------------------------------------------