方法重构(overload)

本文介绍了Java中的方法重载和方法重写概念。方法重载发生在同一类中,通过改变参数列表(类型或数量)来实现。而方法重写则涉及继承关系,子类对父类方法的实现进行覆盖,改变方法体来实现不同功能。示例代码展示了如何在Time1类中使用方法重载来创建不同参数构造函数。

方法重载(overload)

举个简单的例子:当你编写一个A+B给用户时,你无法确认A与B是哪种数据类型时,例如你写一个int与int相加时,但用户不知情输入一个浮点型,那么就不得了了。但又假设用户知道是int型时,但他又想算浮点型相加,那么他是不是又要用到新的方法,但这样有需要找新的方法名岂不是很麻烦。因此方法重载就有了意义。

方法重载指的是在一个类里面允许有多个方法名相同的方法,但这样的方法之间又有要求(不然又怎么在调用的时候分辨呢)。

要求就是:

同名方法中的参数的数据类型或个数不同

class Time1
{
    private int hour;
    private int minute;
    private int second;
    public Time1(){
        setTime(0,0,0);}
    public Time1(int hh){
        setTime(0,0,0);}
    public Time1(int hh,int mm){
        setTime(0,0,0);}
    public Time1(int hh,int mm,int ss){
        setTime(0,0,0);}
    public void setTime(int hh,int mm,int ss){
        hour = 0;
        minute = 0;
        second = 0;
    }
}  

这里就是参数个数不同的例子。

接下来说说

方法重写

两个仅有一字之差但却有天壤之别:
方法重载:
1.发生在一个类中
2.仅改变参数的类型或个数
方法重写:
1.发生在两个类以上之中,通常为父类或接口的关系中
2.通过改变方法体实现
1.发生在两个类以上之中,通常为父类或接口的关系中
2.通过改变方法体实现

### 方法覆盖与方法重写的定义与区别 方法覆盖(Override)与方法重写(有时也称为覆盖)在编程中是同一个概念,通常用于描述子类重新定义从父类继承的方法。这一机制支持运行时多态,使得程序在执行时可以根据对象的实际类型调用相应的方法。例如,在 Java 中,子类可以重写父类的方法,以提供特定的实现。 在定义上,方法覆盖要求子类中的方法与父类中被重写的方法具有相同的方法名、参数列表和返回类型。此外,访问权限不能比父类中的方法更严格,且抛出的异常不能比父类方法更多或更宽泛。 ```java class Animal { public void makeSound() { System.out.println("Some sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark"); } } ``` ### 方法覆盖与方法重写的实现方式 在 Java 中,使用 `@Override` 注解可以明确指出一个方法是打算重写父类中的方法。这不仅有助于编译器检查是否确实存在可重写的方法,还能提高代码的可读性和可维护性。 Python 中的方法重写更为灵活,因为 Python 是动态类型的,不需要严格遵循参数和返回类型的匹配规则: ```python class Animal: def make_sound(self): print("Some sound") class Dog(Animal): def make_sound(self): print("Bark") ``` 在实现方法覆盖时,应确保子类的方法行为符合预期,并且在逻辑上是对父类方法的合理替代,以避免违反 Liskov 替换原则。 ### 方法覆盖与方法重载的区别 方法重载(Overload)与方法覆盖不同,它是指在一个类中可以有多个同名的方法,但这些方法的参数列表(参数的类型、个数或顺序)必须不同。返回值类型的不同不足以构成方法的重载。方法重载是 Java 多态的一种表现形式,它允许使用相同的方法名处理不同的数据类型或数量的参数。 ```java public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } ``` ### 方法重构的概念 方法重构是指在不改变外界访问的情况下对代码进行修改,但不改变原方法的效果,目的是提高其性能,使程序更加易读、可维护。重构是在不改变软件可观察行为的前提下改善其内部结构。重构通常不是一次性的,它贯穿软件的整个生命周期,只要觉得不合理都是重构的时机。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值