From 901369cee2c6f7ae5da1eb59589766f0779f2ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=BF=97=E4=BC=9F?= <2152890632@qq.com> Date: Mon, 8 May 2023 23:37:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E6=80=81=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...32\346\200\201\344\275\234\344\270\232.md" | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 "06 \351\231\210\345\277\227\344\274\237/20230508 \345\244\232\346\200\201\344\275\234\344\270\232.md" diff --git "a/06 \351\231\210\345\277\227\344\274\237/20230508 \345\244\232\346\200\201\344\275\234\344\270\232.md" "b/06 \351\231\210\345\277\227\344\274\237/20230508 \345\244\232\346\200\201\344\275\234\344\270\232.md" new file mode 100644 index 0000000..27f924f --- /dev/null +++ "b/06 \351\231\210\345\277\227\344\274\237/20230508 \345\244\232\346\200\201\344\275\234\344\270\232.md" @@ -0,0 +1,119 @@ +## 多态练习 + +### 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 getlnfo(){ + return "圆的面积"+"圆的周长"; + } +} +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 3.14*(radius*radius); + } + + @Override + public double perimeter() { + return 2*3.14*radius; + } + + @Override + public String getlnfo() { + return "圆的半径:"+radius+" 圆的面积:"+(3.14*(radius*radius))+" 圆的周长:"+(2*3.14*radius); + } +} +class Rectangle extends Graphic{ + private double length; + private double 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 (length+width)*2; + } + + @Override + public String getlnfo() { + return "长:"+length+" 宽:"+width+" 面积:"+(length*width)+" 周长:"+(length+width)*2; + } +} +class Test{ + public static void main(String[] args) { + Circle circle = new Circle(); + circle.setRadius(6); + System.out.println(circle.area()); + System.out.println(circle.perimeter()); + System.out.println(circle.getlnfo()); + + Rectangle rectangle = new Rectangle(); + rectangle.setLength(5); + rectangle.setWidth(5); + System.out.println(rectangle.area()); + System.out.println(rectangle.perimeter()); + System.out.println(rectangle.getlnfo()); + } +} +``` + -- Gitee