Java基础:2、多态的基本概念和特点

  1、多态是什么?

      多态在特性方面还是比较理解的,指的是同一个对象在不同的时刻可以表现出不同的状态,要体现出面向对象的多态性,必须满足的条件有几点:

      •  必须有继承关系。
      •  必须有方法覆盖。
      •  必须有父类引用指向子类对象。 

      多态中涉及到一个非常重要的概念,叫做编译类型和运行时类型,简单的理解就可以理解为作为引用的类型就是编译类型,实际的对象类型就是运行时类型,当然这样理解是不完全正确的。

      引用类型的变量在编译阶段只能访问编译类型的相关成员,如果想要访问真实类型的对象成员的话必须经过强制转型(向下转型),否则会发生编译错误。这里有一个需要注意的点,引用类型的成员变量是不具有多态性的,也就是说想通过多态来访问运行时类型对象的成员变量是无法访问的,就算有同样的属性,访问的一定会是编译时类型对象的成员变量。

      多态的概念理解起来还是不困难的,但是多态底层的实现是很复杂的,涉及到了虚拟机的动态绑定等概念,虽然现在有所了解,但是理解的不是很透彻,等后面再阅读更多的一些相关资料后再来填这个坑。

  2、多态带来了什么好处?

      多态的存在使Java代码拥有了更多的灵活性,可以用同一个引用访问不同的对象,也使代码拥有了更高的扩展性,如使用父类作为方法形参,实际调用时传入该类的任意子类作为参数都是可以的。

posted on 2019-07-02 18:49  Dc5e  阅读(1091)  评论(0编辑  收藏  举报

导航