diff --git "a/28 \351\273\216\345\255\220\351\276\231/20230509 Java\345\244\232\346\200\201 \347\273\203\344\271\240.md" "b/28 \351\273\216\345\255\220\351\276\231/20230509 Java\345\244\232\346\200\201 \347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..9147ad90a86d7c8ebddca7bbd2339dda2e26a95f --- /dev/null +++ "b/28 \351\273\216\345\255\220\351\276\231/20230509 Java\345\244\232\346\200\201 \347\273\203\344\271\240.md" @@ -0,0 +1,163 @@ +## 多态练习 + +### 1、图形 + +(1)父类Graphic图形 + +- public double area()方法:返回0.0 +- public double perimeter()方法:返回0.0 +- public String getInfo()方法,返回图形面积和图形周长 + +(2)子类Circle圆继承Graphic图形 + +- 包含属性:radius,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回圆的半径,面积和周长 + +(3)子类矩形Rectangle继承Graphic图形 + +- 包含属性:length、width,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回长和宽,面积、周长信息 + +(4)在测试类中,新建一个比较图形面积的方法,再建一个比较图形周长的方法,main方法中创建多个圆和矩形对象,再调用方法比较他们的周长或面积。 + + + +```java +public class Graphic { + public double area() { + return 0.0; + } + public double perimeter() { + return 0.0; + } + public String getInfo() { + return "面积是:"+area()+",周长是:"+perimeter(); + } +} +``` + + + +```java +public class Circle extends Graphic{ + private double radius; + + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + this.radius = radius; + } + + @Override + public double area() { + return Math.PI * radius *radius; + } + + @Override + public double perimeter() { + return Math.PI * radius * 2; + } + + @Override + public String getInfo() { + return "圆的半径是:" + radius + super.getInfo(); + } + + public Circle() { + } + + public Circle(double radius) { + this.radius = radius; + } +} +``` + + + +```java +public class Rectangle extends Graphic{ + private double length,width; + + public double getLength() { + return length; + } + + public void setLength(double length) { + this.length = length; + } + + public double getWidth() { + return width; + } + + public void setWidth(double width) { + this.width = width; + } + + @Override + public double area() { + return length * width; + } + + @Override + public double perimeter() { + return 2 * (length + width); + } + + @Override + public String getInfo() { + return "矩形的长是:" + length + ",宽是" + width + super.getInfo(); + } + + public Rectangle() { + } + + public Rectangle(double length, double width) { + this.length = length; + this.width = width; + } +} +``` + + + +```java +public class Test { + public static void bjArea(Graphic a , Graphic b ) { + if ( a.area() > b.area() ) + System.out.println( a + "的面积大于" + b ); + else if ( a.area() == b.area() ) + System.out.println( a + "的面积等于" + b ); + else + System.out.println( a + "的面积小于" + b ); + } + + public static void bjPerimeter( Graphic a , Graphic b ) { + if ( a.perimeter() > b.perimeter() ) + System.out.println( a + "的体积大于" + b ); + else if ( a.perimeter() == b.perimeter() ) + System.out.println( a + "的体积等于" + b ); + else + System.out.println( a + "的体积小于" + b ); + } + + public static void main(String[] args) { + Circle circle1 = new Circle(2); + + Rectangle rectangle1 = new Rectangle(2,4); + + bjArea(circle1,rectangle1); + } +} +``` + + +