首页 > 编程知识 正文

萧和笛的区别,软件显示overriding

时间:2023-05-05 09:02:23 阅读:166806 作者:3888

涵盖(重写) java中继承、方法override和方法重载overload之间的差异

方法重写(Overriding )和过载(Overriding )是Java多态性的不同表现。

重写(Overriding )是父类和子类之间的多态表示,而重载(Overriding )是类中的多态表示。

在子类中定义方法后,如果其名称和参数与其父类相同,则方法将被重写。 当子类中的对象使用此方法时,将调用子类中的定义,而父类中的定义就像被屏蔽了一样。

如果类中定义了多个同名方法,并且它们具有不同的参数数量、不同的参数类型或具有不同的参数顺序,则称为方法重载(Overloading ) 不能通过权限、返回类型或抛出的异常进行重载。

Override特征1、覆盖方法标识必须与覆盖方法标识完全匹配才能达到覆盖效果

2、复盖方法的返回值必须与复盖方法的返回值一致

3、复盖方法的慢异常,必须与复盖方法的慢异常匹配或其子类别

4、方法定义为final不可重写。

5、对于继承,如果某个方法在父类中权限为private,则不能在子类中重写。 如果定义了,则只是定义了新的方法,没有复盖、复盖的效果。 它通常存在于父类和子类之间。 )

6、子类重写父类方法时,修饰语不能小于父类; (publicprotectedprivate )

2.Overload的特点

1 .使用重载时,只能用不同的参数样式。 例如,不同的参数类型、不同的参数数量、不同的参数顺序(当然,同一方法中的某些参数类型需要不同)。 例如,它可以是fun (整数,浮点),但不能是fun (整数,整数)。 );

2、访问权限、返回类型、抛出的异常无法重载

3、方法的异常类型和数量不影响重载;

4、超载事件通常发生在同一个班级内,是不同方法之间的现象。

5、虽然存在于同一个班级,但只写了虚方法和抽象方法。

其具体实现机制:

overload是过载,过载是参数多态性机制,是代码通过参数类型和个数实现的多态性机制。 是一种静态绑定机制。 在编译过程中,您知道具体正在执行哪些代码段。

override是重写,重写是动态绑定的多态性机制。 这意味着父类和子类中同名的元素(如成员函数)具有不同的实现代码。 哪些代码正在运行取决于运行时的实际情况。

Overrride实例:

class A{

公共获取

返回(5;

}

}

class B extends A{

公共获取

返回(10;

}

}

公共类概述{

publicstaticvoidmain (string [ ] args ) {

B b=new B (;

a=(a ) b; 将//B强制转换为a类型

int x=a.getVal (;

system.out.println(x;

}

}

结果: 10

Overload实例:

公共类测试{

公共void save (inta ) {

}

公共void save (inta,int b ) {

}

}

请注意以下示例:

class Father {

公共void foo (objecto ) {

system.out.println(「Father.foo”);

}

}

class Son extends Father{

公共void foo (strings ) {

system.out.println(「son.foo”);

}

}

public class Main {

publicstaticvoidmain (string [ ] args ) {

Son son=new Son (;

son.foo(newobject ) );

}

}

结果:

1

Father.foo (

这里需要注意的是,这里不称为方法重载,方法重载只能发生在同一个类中。 亲子类中方法名相同,但参数不同,原则上这也属于两种不同的方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。