java多态

Posted yourblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多态相关的知识,希望对你有一定的参考价值。

一、概念

多态:同一份代码(方法)可以毫无差别的作用在不同的类型上或者说同一份代码(方法)作用在不同的类型上会产生不同的行为。在java中多态是基于类继承或接口实现而实现的。

二、案例

public class Shape
    public void draw()
        
    


public class Circle extends Shape
    public void draw()
        System.out.println("circle draw.");
    


public class Square extends Shape 
    public void draw() 
        System.out.println("Square draw.");
    


public class Tools 
    public void drawShape(Shape shape)
        shape.draw();
    

上述drawShape方法只与基类进行通信。在上述示例中draw方法的调用就是多态的,因为同一个方法draw可以产生不同的行为。对draw方法的所有调用都是通过动态绑定进行的。

动态绑定:方法的调用是在运行时确定调用的主体(对象)的。即一个对象在编译期时无法知道自己时基类的对象还是子类的对象。例如上述的drawShape方法的参数shape在编译期是无法知道其是Shape的对象还是Circle或Square的对象。简单的说就是一个方法在运行时才确定其是那个对象的方法。

在java中只有普通方法的调用时多态的。对于域和静态方法的调用并不是多态的。

对任何域的访问都将在编译器进行解析,就算基类和子类有相同名称的域,调用该域永远访问的时类对象自己的域。

以上是关于java多态的主要内容,如果未能解决你的问题,请参考以下文章

java中多态是啥意思?

java中的多态

java实现多态有几种方式?分别是啥?

java多态怎么解释?

java中多态是啥意思?

多态分为哪两中