java中多态概念、实现原理详解-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联建站服务项目包括新干网站建设、新干网站制作、新干网页制作以及新干网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,新干网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到新干省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

一.什么是多态?

1.多态的定义

指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)

2.多态的作用

消除类型之间的耦合关系

3.多态的说明

近代网络小说泛滥,我们可以用它来举一个例子

某日你看见你手机上有多部小说同时更新了,比如有大主宰,雪鹰领主,龙王传说…在这里我们可以描述成如下:

小说a=大主宰

小说b=雪鹰领主

小说c=龙王传说

这里所表现的就是多态,大主宰,雪鹰领主,龙王传说都是小说的子类,我们仅仅可以通过小说这个父类就能够引用不同的子类,这就是多态–我们只有在运行的时候才会知道引用变量所指向的具体实例对象

当然,这样的理解是是远远不够的,要对多态的理解入门就必须要明白是”向上转型”

 在上面的例子中,小说(XS)是父类,大主宰(DZZ),雪鹰领主(XYLZ),龙王传说(LWCS)都是其子类 于是,我们定义如下代码

DZZ a=new DZZ();

对于这段代码应该都不会感觉到陌生,无非就是实例化了一个大主宰的对象 那么对于如下的这段代码呢?

XS a=new DZZ();

在这里我们这样理解,这里定义了一个XS类型的a,让它指向了DZZ对象实例。由于DZZ是继承于XS,所以DZZ可以自动向上转型为XS,所以a可以指向DZZ实例对象的。这样做存在一个非常大的好处,在继承中我们知道子类是父类的扩展,它可以提供比父类更加强大的功能,如果我们定义了一个指向子类的父类引用类型,那么它除了能够引用父类的共性外,还可以使用子类强大的功能

但是向上转型也存在一些缺憾,那就是它必定会导致一些方法和属性的丢失,而导致我们不能够获取它们。所以父类类型的运用可以调用父类中定义的所有属性和方法,对于只存在与子类中的方法和属性它就望尘莫及了

public class XS {

    public void fun1() {
      System.out.println("XS中的fun1");
      fun2();
    }


  public void fun2() {
     System.out.println("XS中的fun2");    
  }
}


文章标题:java中多态概念、实现原理详解-创新互联
URL链接:http://myzitong.com/article/ceeicg.html