虾米叫多态呢,为虾米能有效替代switch涅(((m(-_-)m

解决方案 »

  1.   

    翻译一下:标题:switch 有什么缺点?正文:什么叫多态?为什么说多态能取代 switch?
      

  2.   


    多态就是一个对象 多种形态 方便灵活使用父子类对象,方法~
    switch是指的switch case语句么?
    爽歪歪星球语我只是一知半解
      

  3.   

    多态的定义和特性可以在百度搜到在多态出现之前,需要使用一个额外的变量来决定调用哪个程序,这时候需要用到switch语句对额外的变量进行判断。
    例子就不举了,写起来太恶心了……
      

  4.   

    switch缺点就是容易发生case穿透问题!
    对于复杂的流程分支不易用switch
      

  5.   

    额·······为虾米这么多人晕掉勒咯,sorry,偶不是有意哒不好意思^_^拜一个~火龙GG的徽章们好pp~thx帮偶翻译:)还有,还有,感谢大家的回答.......(((((m(- -)m
      

  6.   

    通常情况下我们可以把多态理解成一个对象多个状态,即重写和重载。还有一个表现就是创建一个标准,即用接口来实现。
    多态是为了增加程序的可维护性,可扩展性,还有提高代码的重用性。来设计的。
    而你说的switch是程序的语法。
      

  7.   

    这样的人才 搞java 有点可惜哦 不过 是楼主搞java还是被java搞就拭目以待了 嘿嘿
      

  8.   

    应该想问为什么不用这种方式实现多态吧:Type type = object.getRunTimeType();
    switch(type)
    {
        case Root:
            ((Root)object).method();
        case OffSpring1:
            ((OffSpring1)object).method();
        case OffSpring2:
            ((OffSpring2)object).method();
        ...
    }
      

  9.   


     标题:switch 有什么缺点? 正文:什么叫多态?为什么说多态能取代 switch?
      

  10.   

     标题:switch 有什么缺点? 正文:什么叫多态?为什么说多态能取代 switch?
      

  11.   

    什么叫多态?为什么说多态能取代 switch? 谁告诉你的?!该打
      

  12.   

    我家的老师没教我 switch替代多态
      

  13.   

    楼主也知道 switch 多了很麻烦的,而且对扩展很不方便,但是为什么说多态能有效地替换 switch 呢?
    这个问题我感觉很难说清楚。如果一个应用做好了之后,理想化的情况下是永远不会改动了,那么,所有的设计方法、重构方法、各种
    设计模式能将成为文物,没有丝毫用处了。但是现实并非如此,我们做好的东西可能会一动再动。如果没
    有好的设计的话,将会导致这些代码很难进行维护,可能改一个小小的东西,会导致一堆的代码进行更改,
    这也许就不是我们所希望的。按照面向对象设计原则中的“开-闭原则”,某一个应用在完成之后除非是修正原有代码中的错误,在其他
    情况下(比如说增加一个新的功能),只允许添加新的代码,但是原来已经完成的代码一行都不能进行改动。
    这就是所谓的“开-闭原则”,即对功能的增加是开放的,对既有代码的修改是封闭的。在这种原则下,如果采用 switch 的话,增加一个 case 项势必要去更改原有的代码,如果采用多态的话,
    我们只需要在配置文件中多加上一条新增的子类名称,系统就会自动地进行识别,我们原来写好的代码可以
    不要去动。上面说的一些只是理想上的东西,现实中是很难有理想上的东西,而且这种实现需要有很多的面向对象技巧
    和代码经验,有一本书对如何编写可扩展、易维护的代码有相当深入的介绍,这本书与 GoF 的设计模式是
    齐名的。这本书的开头一章就一个小型的重构案例,如何能理解看懂的话,对每个人都是有帮助的。这个案例中也有
    如何去掉 switch 采用多态进行重构的要点。
      

  14.   

    switch的用途有限,只能涉及常量(包括ENUM)如果非要与多态扯上关系的话
    就是火龙大哥说的那样了~继续学习~
      

  15.   

    回答经 7 楼翻译后的楼主的虾米问题:
    利用工厂方法(or 抽象工厂)模式可以消除 switch case 的判断。
    <引用>
    有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿。不能飞翔,就少了几许灵动的气韵。我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来。……
    http://www.cnblogs.com/wayfarer/articles/70453.html
    </引用>
      

  16.   


    崇拜ing```````热泪盈眶ing``````````偶要好好好好学`````````many thx火果果大大````````````^0^
      

  17.   

    看你说话就是网上学来的口气啊 那应该算是个网虫了,网虫不会玩论坛设置?LZ够奇怪的哟...
    呵呵 我随便说说哒~LZ不要介意吼。
      

  18.   

    csdn也惊现非主流
    无孔不入啊
      

  19.   

    楼主真搞笑啊!
    我就简单的给你模拟一下什么是多态吧!
    假设你现在有一个实体类接口是Animal,那么你可能会去实现这个类叫Dog.java.这个类里,你实现了所有animal的所有方法.
    这样,你在使用的时候,就是这样了:
    Animail aim = new Dog();这个时候,你的需求有变动,你要有一个猫猫,那么你怎么办?好办啊!你就写一个implement animal的Cat类,然后,你使用的时候,就变成了:
    Animail aim = new Cat();
    这就是多态的最简单的实现过程了.是不是感觉开发简单了许多?至少你保证了一些类是不用变化的.最后,请记住几句话:多态分为两种:    编译时多态和运行时多态。
    编译时类型:主观概念,把它看作什么。
    运行时类型:客观概念,实际它是什么。
       例:Animal a=new Dog();
           指着狗问,这个动物是什么?
      

  20.   


    wow..开个讲座吧,让偶好好学学···kindly mentorbty, thx vm^^