首页天道酬勤java多态,方法重写和方法重载

java多态,方法重写和方法重载

张世龙 05-05 14:53 18次浏览

一、概念

Java中的重写是指重写子类对父类中的子类可见的方法逻辑。 但是,方法的形状参数和返回类型不变。 此外,方法的访问修饰符不能比父类更严格。 也就是说,壳牌保持不变。 是核心改写。

在一个类中,只要满足方法名称相同,参数数量或类型不同,就属于方法重载,与方法的返回类型和访问修饰符无关。

二、条件(规则)

方法重写规则:

1、方法的名称、参数列表、返回类型必须与父类相同,不能修改;

2、方法的访问修饰符不能比父类更严格,但可以降低限制。 (例如,如果父类方法的访问修饰符为protected,则当子类被重写时,访问修饰符只能是protected或public。 ) ) )

3、子类重写方法一定不能抛出新的检查异常,也不能抛出比父类宽的检查异常。 (只能抛出父类的原始异常或原始异常的子类异常),但也可以抛出非检查异常。

4、父类的静态、final和private限定的方法不重写子类。 由于它们是静态绑定的,因此在编译过程中虚拟机确定了与方法对应的具体对象(父类)。

5、父类结构方法子类不可重写;

6、对于父类的包访问权限方法(default ),如果子类和父类位于同一包中,则子类可以重写这些方法,如果两者不在同一包中,则不能重写

方法重载规则:

1、方法名称必须相同,方法的参数数量或参数类型必须不同;

2、方法的返回值和访问修饰符可以不同,这不是判断方法重载的条件

3、方法慢异常可以不同;

4、重载发生在一个类中,不同类中不存在方法重载;

5、final修饰的方法可以重载。

三、两者的区别

1、方法重写发生在父类和子类之间,方法重载发生在一个类内;

2、方法重写请求方法名称、参数列表、返回值必须相同,且不能抛出新的检查异常,也不能抛出大于父类的检查异常; 方法重载只要求方法名称相同,参数个数或类型不同,不要求其他;

3、子类不能重写父类的final、static、private修饰方法及父类的构建方法; 上述所有方法都可以在一个类中重载;

4、重写是父类与子类之间多态性的体现,属于运行时多态性; 方法重载是使类统一处理不同类型数据的一种手段,同时存在多个同名函数,具有不同的参数数/类型,具有传递的参数数和类

类型决定调用哪个方法。 这是多态性的表现之一,是编译时的多态性。

5、运行时的多态性是指在运行时,通过判断与方法对应的具体对象\类型,调用具体方法,这就是多态性。 编译时的多态性意味着参数的数量和类型可以决定调用哪个方法,当然

发生在一个类中,这是方法的重载,也是多态性的体现。

四.总结

方法重载使Java类中的代码更简洁,可以使用相同的方法名称以不同的参数数量或类型提供不同的效果。重载允许子类根据自己的需要重写自己的代码。 这是多态性。 应用很好

重载和重写有助于设计更清晰、简洁的Java类和更强健的Java代码。

java多态,java重载和重写