多态的使用

原创 2018年04月16日 23:07:03

1 .什么是多态:多种形态。

分两部分:

1、功能多态:一个行为多种实现方式体现:重写和重载

2、形态多态:一个类型的多种表现形式比如:动物多种表现形式:猫、狗

Animal a=newDog();//父类的引用指向子类的对象(即向上转型),反过来不行

使用多态时一些注意事项

1、存在继承

2、方法重写

2. 多态的应用

1、向上转型:父类引用指向子类对象

2、向下转型:父类引用显式类型转换为子类对象。

1.比如说将Cat类型转换为Animal类型,即子类型转换为父类型。对于向上类型转换,不需要显式使用强制类型转换

1.Cat  cat  = new Cat ();  
2.Animal animal = cat;
如上为向上转型;

 比如将Animal类型转换为Cat类型,即将父类型转换为子类型。对于向下类型转换,必须要显式使用强制类型转换。

1.Animal a = new Cat();  
2.Cat cat = (Cat) a; 

如上为向下转型;

为什么要使用多态?

以上代码是不使用多态的情况,PolyTest2这个类中的run方法既要处理BWM类中的run方法,又要处理QQ类中的run方法,不使用多态的话就要针对不同的对象逐一定义方法。若一个类有很多很多子类,那么代码量是非常庞大的。因此,这时候多态就非常有用了

public class PolyTest2  
{  
 /*  
    public void run(BMW bmw) 
    { 
        bmw.run(); 
    } 
 
    public void run(QQ qq) 
    { 
        qq.run(); 
    } 
        */  
<strong>  
    public void run (<span style="color:#FF0000;">Car car</span>)  
    {  
        car.run();      
    }</strong>  
  
    public static void main (String[] args)  
    {  
        PolyTest2 test = new PolyTest2();  
        Car car = new QQ ();                               //Polymorphism  
        test.run (car);  
          
        BMW bmw = new BMW();  
        test.run (bmw);                                   //use upcast  
    }  
}  
  
class Car  
{  
    public void run()  
    {  
        System.out.println ("car is runing");  
    }  
}  
  
class BMW extends Car  
{  
    public void run ()  
    {  
        System.out.println ("BMW is runing");  
    }  
}  
  
class QQ extends Car  
{  
    public void run ()  
    {  
        System.out.println ("QQ is runing");  
    }  
} 
以上是使用多态的代码,在子类繁多的情况下就大有用处了。

为什么要使用多态?什么时候使用多态?

多态意味着将可能有向上转型和向下转型
  • cjf1002361126
  • cjf1002361126
  • 2016-10-06 16:31:23
  • 989

什么是多态?为什么使用多态?

看Java核心技术这本书时,多态的内容讲解的很少,只是举个例子告诉我们怎样使用多态,而没有明确说明为什么使用多态的问题。 谈到面向对象的编程语言时不可避免的就会介绍继承,子类可以继承父类除priva...
  • kaweeee
  • kaweeee
  • 2017-09-15 15:36:29
  • 962

多态的使用意义

1.多态(Polymorphism):就是父类型的引用可以指向子类型的对象。 2.Parent p = new Child ();当使用多态调用方法时,首先检查父类有没有该方法,若有,则执行该方法;...
  • u010695380
  • u010695380
  • 2014-07-13 22:01:59
  • 1834

java学习笔记----测试多态的用法

java学习笔记(高琪版)面向对象OOP测试多态的用法 多态,是指程序最终状态是在程序运行时才被确定 首先一个类需要被多个类所继承 这多个类相较于父类都有一定的改写才有意义(方法的重写) 新建对象时父...
  • cn_leeyiru_static
  • cn_leeyiru_static
  • 2017-01-26 21:25:03
  • 343

c#中应用多态的计算器

  • 2012年07月23日 21:52
  • 22KB
  • 下载

C#使用多态实现计算器有BUG,求帮助

InvalidArgument=“0”的值对于“SelectedIndex”无效。
  • lyc527436298
  • lyc527436298
  • 2016-09-09 18:13:43
  • 194

多态的使用和概述以及弊端和好处

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • qq_28483283
  • qq_28483283
  • 2016-03-10 21:44:16
  • 3588

为什么要使用多态

     引入多态是为了解决一般化问题和架构的抽象。Ø       非多态的特点1)       如果你以一个「基础类别之指针」指向「衍生类别之对象」,那么经由该指针你只能够调用基础类别所定义的函数。...
  • zhou_botong001
  • zhou_botong001
  • 2009-09-11 09:41:00
  • 3435

抽象类实现多态

实现多态的第二种方法也就是实用抽象类(Abstract),那么虚方法可以实现多态,抽象类也可以实现多态,那么到底什么时候使用抽象类呢当父类中的方法不知道如何去实现的时候,可以考虑将父类写成抽象类,将方...
  • NextStand
  • NextStand
  • 2016-05-26 21:21:24
  • 1160

简洁代码之道:用多态替代条件语句及避免全局可变状态

前言 本文是我看了 谷歌简洁代码演讲系列 中的 多态和条件语句 的总结。大部分的条件语句是可以用多态代替的,本文将围绕以下问题开展: 为什么要用多态替代条件语句多态和条件语句的使用场景如何用多...
  • benpaobagzb
  • benpaobagzb
  • 2016-03-04 16:18:48
  • 916
收藏助手
不良信息举报
您举报文章:多态的使用
举报原因:
原因补充:

(最多只允许输入30个字)