Java实现:矩形与正方形类的派生与接口

需积分: 1 8 下载量 47 浏览量 更新于2024-12-01 收藏 63KB DOC 举报
"Java编程实现矩形类与正方形类,并设计一个接口Printable用于打印图形信息" 在Java编程中,我们经常需要创建自定义类来表示特定的对象或概念,如几何形状。在这个示例中,我们将实现一个矩形类(Rectangle)以及一个继承自矩形的正方形类(Square)。同时,还会定义一个接口(Printable),以便让这些类能够打印它们的信息。 1. **矩形类(Rectangle)**: - 类Rectangle包含了宽度(width)和高度(height)两个成员变量,分别用来表示矩形的尺寸。 - 类提供了一个无参构造器(Rectangle())和一个带参数的构造器(Rectangle(int w, int h)),用于初始化矩形的宽度和高度。 - `getArea()` 方法返回矩形的面积,计算方式为 `width * height`。 - `getPerimeter()` 方法返回矩形的周长,计算方式为 `width * 2 + height * 2`。 2. **正方形类(Square)**: - 类Square继承自Rectangle,因此它具有矩形的所有属性和方法。 - 由于正方形的宽度和高度是相等的,因此在Square类中,可以重写`getPerimeter()` 方法以返回`width * 4`,因为正方形的周长是边长的四倍。 - 同样,`getArea()` 方法也被重写为 `width * width`,因为正方形的面积是边长的平方。 3. **接口Printable**: - 这个接口可能包含一个方法,比如 `printInfo()`,用于打印图形的相关信息,如面积和周长。这样,任何实现了Printable接口的类都能够按照统一的方式打印其信息。 4. **主程序(UseValue)**: - 在主程序中,用户被提示输入矩形的长和宽。 - 输入的值通过`BufferedReader`读取并转换为整数(m和n)。 - 如果m等于n,创建一个正方形对象(square1),并使用`getArea()` 和 `getPerimeter()` 方法打印正方形的面积和周长。 - 如果m不等于n,创建一个矩形对象(rect1),并打印相应的消息。 这个示例展示了面向对象编程的基本概念,包括类、继承、接口以及用户输入的处理。通过这样的设计,我们可以方便地扩展其他形状类,只需实现Printable接口即可统一打印形状信息。这种模块化和可扩展性是Java等面向对象语言的一大优势。