JAVA多态怎么解释?

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8946万
展开全部
方法的重写和重载是Java多态性的不同表现。 \x0d\x0a重写是父类与子类之间多态性的一种表现。 \x0d\x0a重载是一个类中多态性的一种表现。 \x0d\x0a如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 。 \x0d\x0a子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。 \x0d\x0a如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。 \x0d\x0a并且重载的方法是可以改变返回值的类型的。 \x0d\x0a应该能懂了吧 \x0d\x0a\x0d\x0a????我给你解释下多态的意思 \x0d\x0a多态,我觉得它的作用就是用来将接口和实现分离开,改善代码的组织结构,增强代码的可读性。 \x0d\x0a以下是我对多态的小结 \x0d\x0a1. Java中除了static和final方法外,其他所有的方法都是运行时绑定的。在我另外一篇文章中说到private方法都被隐式指定为final 的,因此final的方法不会在运行时绑定。当在派生类中重写基类中static、final、或private方法时,实质上是创建了一个新的方法。 \x0d\x0a\x0d\x0a2.在派生类中,对于基类中的private方法,最好采用不同的名字。 \x0d\x0a\x0d\x0a3.包含抽象方法的类叫做抽象类。注意定义里面包含这样的意思,只要类中包含一个抽象方法,该类就是抽象类。抽象类在派生中就是作为基类的角色,为不同的子类提供通用的接口。 \x0d\x0a\x0d\x0a4.对象清理的顺序和创建的顺序相反,当然前提是自己想手动清理对象,因为大家都知道Java垃圾回收器。 \x0d\x0a\x0d\x0a5.在基类的构造方法中小心调用基类中被重写的方法,这里涉及到对象初始化顺序。 \x0d\x0a\x0d\x0a6.构造方法是被隐式声明为static方法。 \x0d\x0a\x0d\x0a7.用继承表达行为间的差异,用字段表达状态上的变化。 \x0d\x0a\x0d\x0a为了给你讲明白,我再给你写端例子 \x0d\x0a\x0d\x0a/** \x0d\x0a\x0d\x0a* 定义一个基类 \x0d\x0a\x0d\x0a*/ \x0d\x0a\x0d\x0apublic Class Parents { \x0d\x0a\x0d\x0apublic void print() { \x0d\x0a\x0d\x0aSystem.out.println(“parents”); \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a/** \x0d\x0a\x0d\x0a* 定义两个派生类 \x0d\x0a\x0d\x0a*/ \x0d\x0a\x0d\x0apublic Class Father extends Parents { \x0d\x0a\x0d\x0apublic void print() { \x0d\x0a\x0d\x0aSystem.out.println(“father”); \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0apublic Class Mother extends Parents { \x0d\x0a\x0d\x0apublic void print() { \x0d\x0a\x0d\x0aSystem.out.println(“mother”); \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a/** \x0d\x0a\x0d\x0a* 测试输出结果的类 \x0d\x0a\x0d\x0a*/ \x0d\x0a\x0d\x0apublic Class Test { \x0d\x0a\x0d\x0apublic void find(Parents p) { \x0d\x0a\x0d\x0ap.print(); \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0apublic static void main(String[] args) { \x0d\x0a\x0d\x0aTest t = new Test(); \x0d\x0a\x0d\x0aFather f = new Father(); \x0d\x0a\x0d\x0aMother m = new Mother(); \x0d\x0a\x0d\x0at.find(f); \x0d\x0a\x0d\x0at.find(m); \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a} \x0d\x0a\x0d\x0a最后的输出结果分别是father和mother,将派生类的引用传给基类的引用,然后调用重写方法,基类的引用之所以能够找到应该调用那个派生类的方法,就是因为程序在运行时进行了绑定。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式