方法的重写和重载总结-面向对象二:圆周长和面积的计算及输出

需积分: 0 1 下载量 83 浏览量 更新于2024-01-31 收藏 1.14MB PPT 举报
重写和重载是面向对象编程中常用的两种方法,用于实现方法的多态性和灵活性。下面是对方法的重写和重载的总结。 方法的重写是指子类定义一个与父类中同名、同参数列表、同返回类型的方法,以实现对父类方法的覆盖。重写的方法必须具有相同的方法签名,但可以有不同的实现。在重写中,子类可以选择继承父类的方法或重新定义方法的实现。重写实现时需要注意以下几点: 1. 方法的重写必须保证子类中的方法具有相同的方法返回类型和参数列表,即方法签名必须一致。 2. 子类方法的访问修饰符不能比父类方法的更严格,即不能使用更严格的访问修饰符。 3. 子类方法不能抛出比父类方法更广泛的异常,即异常类型只能相同或者子类异常。 方法的重载是指在同一个类中定义多个具有相同名称但参数列表不同的方法,以实现同一种功能的不同形式。重载的方法可以有不同的返回类型,但不能仅仅通过返回类型的不同来重载方法。重载实现时需要注意以下几点: 1. 方法的重载必须保证方法名相同,但参数列表不同。 2. 方法的重载可以有不同的返回类型,但不能仅通过返回类型的不同来重载方法。 3. 方法的重载可以通过参数的个数、类型、顺序不同来区分。 在面向对象编程中,重写和重载的使用可以大大提高代码的灵活性和可维护性。通过重写可以实现方法的动态绑定,即在运行时根据对象的实际类型来调用合适的方法。通过重载可以实现方法的重复使用,即根据不同的参数列表选择调用不同的方法。 以上面给出的示例为例,我们可以对其进行改造和优化。首先,需要将类名改为首字母大写,符合Java代码的命名规范。然后,在该类中定义一个int类型的成员变量r(半径)和一个double类型的常量PI。接下来,定义一个clength()方法用于求圆的周长,该方法的实现需要通过公式2*PI*r来计算。最后,定义一个carea()方法用于求圆的面积,该方法的实现需要通过公式PI*r*r来计算。 在main方法中,创建一个Circle类的对象cc,并调用getClength()和getArea()方法来打印圆的周长和面积。运行程序后,输出结果为:圆的周长是:31.4,圆的面积是:78.5。 继承是面向对象编程中另一个重要的概念,它可以使一个类继承另一个类的属性和方法。通过继承,子类可以直接使用父类的成员变量和方法,而不需要重新定义。在继承中,父类又被称为超类或基类,子类又被称为派生类。子类可以通过关键字extends来继承父类。 在日常生活中,我们也可以找到很多继承的例子。比如,一个人类可以继承自动物类,拥有自动物类的属性和方法,而且人类还可以定义自己独有的属性和方法。又比如,一个手机类可以继承自电子产品类,拥有电子产品类的属性和方法,而且手机类还可以定义自己独有的属性和方法。 继承可以使代码的复用率和可维护性大大提高,因为子类可以直接继承父类的属性和方法,不需要重新定义。同时,继承也可以实现代码的扩展性和灵活性,子类可以添加自己独有的属性和方法,以满足不同的需求。 综上所述,方法的重写和重载是面向对象编程中常用的两种方法,可以实现方法的多态性和灵活性。通过重写,子类可以覆盖父类的方法实现,实现动态绑定。通过重载,可以实现方法的重复使用,根据不同的参数列表选择调用不同的方法。继承是面向对象编程中另一个重要的概念,通过继承可以使子类继承父类的属性和方法,提高代码的复用率和可维护性。在生活中,我们也可以找到很多继承的例子,说明继承在面向对象编程中的普遍应用。