`
changqingonly
  • 浏览: 25569 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA里多态的理解

阅读更多
    今天有开始对多态的理解加深了,基础不好的话看别人的程序很麻烦了,要不断地测试,测试……然后想想为什么,为什么……等过了一两年再看原来的基础代码的时候友开发犯迷糊了,又开始犯迷糊,然后测试测试……回忆一下为什么这样那样……
    Father{
     视察(){
         System.out.println("大家好好工作啊,你们辛苦了!");
         System.out.println("基层的每个官员给我贿赂300块大洋,我保你们平安");
     }
   }
    现在我们创建对象
          Father father = new Father();
         father.视察();//工作做完了,并且还捞了不少钱
   现在老爹不想干了,想退休了,儿子就可以继任啦,但是以前的基层官员可没退休,这群基层的只在乎你是不是有这个头衔;
   根据中国封建的世袭制,孩子是有这个头衔的。为了让儿子有这个头衔,我们创建对象的时候就采用了继承机制
   Son extends Father{}
   Son son = new Son();
   son.视察();//(用老子的方法)工作做完了,又捞了不少钱
  孩子们都继承父亲。这样儿子就有了老爹的职能了。但是儿子每次捞的钱数和老爹每次的一样。孩子心想啊,我要比老爹捞的多一点,不然人家骂我无能了。所以现在孩子都不用老爹的工作方式了,都改成自己的
   Sonx extends Father{
    视察(){
         System.out.println("大家好好工作啊,你们辛苦了!");
         System.out.println("以后基层的每个官员给我贿赂600块大洋,我保你们平安");
     }
    玩乐(){
         System.out.println("今天去了3家青楼!");
    }
  }
  Sonx sonx = new Sonx();
  sonx.视察();//(用自己的方法)工作做完了,又捞了不少钱
  孩子们都覆盖了老爹的工作方式了,这样就可以打捞一笔了。
  继承的方式说完了,现在开始看看多态的方式吧。
  现在孩子要去觐见皇帝老儿了,皇帝老儿以前只给孩子他爹授勋过而已,也只在乎你这个小屁孩是不是我那时候给授勋的那个大臣的孩子。所以孩子们就不得不“转型”!既然皇帝老儿只认身份不认人,那我就“上转型”成我老爹不就行了!于是孩子开始转型了
  Father son2father = son;
  这样皇帝老儿也知道了这个小毛孩是谁了,也给予这个小屁孩觐见的功能了。这时候皇帝老儿问孩子:“你每次去视察的时候每个官员收多少钱啊?”,不贪的(没有重写视察方法的那个孩子)son就回答说:“300块大洋”;贪的那个孩子(重写了视察方法的那个孩子)回答:“我比较上进,要求每个收600块大洋”。皇帝老儿点点头就让这群小屁孩回去了。
  现在,老子觉得在家里呆着无聊,还想出去视察工作。这可不好办了,现在人家认的是儿子而已,人家不认我了,我都已经把权利都交给孩子了,这可怎么办呢?我可以也转转型呀?   
  Sonx father2sonx = (Sonx)father;
  father2son .视察();
  老爹可以出去贪污受贿了?你觉得人可以返老还童么?你是上帝么?上帝是你么?
     father2sonx.视察();
     father2sonx.玩乐();
看到这里你觉得这个老子贪心么?很贪心是吧!!!既然你觉得这样的老子很贪心,为什么让他这么干呢?我看不下去,相信你也看不下去。外国人更是看不下去了:“娘希匹,不准你转,你以为上帝是你自己的啊?要转我就给你抛异常(java.lang.ClassCastException)”
(这里多态还没讲完^_^先和稀粥去,不拉稀的时候再过来这里吹吹鼻子)

继续说说多态吧。好久没来了,先给这里打扫打扫灰尘,上上香,各位大神走过的同时也给我留下点建议,学习学习,共同进步~~~
说到多态就要提到接口了,我觉得接口和抽象类的设计初衷是为多态服务的。怎么理解呢,先来看看需求吧(万物的发展都是以需求做驱动的)。继续上面的例子-->
    老子就快死翘翘了,但是老子不甘心自己死了就因此没有了官位啊(先回家了^*^)

继续理解变态(多态)设计
  • 大小: 65.4 KB
分享到:
评论
39 楼 Suxinf 2008-11-25  
搞教育挺好
38 楼 javapro 2008-11-25  
理解的不錯,很有才...

37 楼 狂放不羁 2008-11-24  
呵呵。多态是为设计模式,OO设计原则服务的。
36 楼 mosheo 2008-11-24  
算是有一翻研究了
其实也就时讲了下继承,多态的原理
很不错的
35 楼 shihaidong0605 2008-11-23  
拜读过了,很形象,也很生动
34 楼 anxin587 2008-11-23  
说的很搞笑啊.
33 楼 696960m 2008-11-22  
这个上帝很疯狂
32 楼 ddd0401 2008-11-16  
还没开始讨论多态把?如果那个father有很多儿子应该会更适合多态的讨论,期待LZ的继续
31 楼 brilliant1984 2008-11-13  
哦?javaeye有二次提交的问题?
30 楼 brilliant1984 2008-11-13  
^_^ 有趣
29 楼 brilliant1984 2008-11-13  
^_^ 有趣
28 楼 creasure 2008-11-12  
连个参数都没有,我没看出多态,除了继承……
27 楼 xiao0556 2008-11-05  
硬是把多态说成继承了,建议少用继承多用组合。建议你去看看策略模式
ps:看在lz态度不错的份上,投个新手贴吧
26 楼 liutao_2006 2008-11-05  
你这样说,还真不愧是一种"一箭双雕"的方式啊
25 楼 luzl 2008-11-01  
不错,牛人一个,去写书啊,肯定比Head First 系列好.很有才!
24 楼 changqingonly 2008-10-31  
风花雪月饼 写道

建议楼主看看  http://zangweiren.iteye.com/blog/221944可能程序应改为:


Java代码

interface 高级官员{   
   视察();   
}   
  
class 楼主老爸 implements 高级官员{   
    视察(){   
      一声吼("一人交300块,不交就砍头!");   
    }   
}   
  
class 楼主 implements 高级官员{   
    视察(){   
      私下密谈("一人600块,不给要你好看!");   
    }   
}  interface 高级官员{
   视察();
}

class 楼主老爸 implements 高级官员{
    视察(){
      一声吼("一人交300块,不交就砍头!");
    }
}

class 楼主 implements 高级官员{
    视察(){
      私下密谈("一人600块,不给要你好看!");
    }
}
如楼主所说,基层干部认的是你的官职,谁认你老爸啊。所以,楼主只要有高级官员这个官职就可以收钱了。。。

首先谢谢您的赐教!你让我知道了接口编程的核心思想!
我在这里只是说明了继承的主题思想。至于'多态'在此我还没过多的说明。
本人现在也是在迷茫当中前进。我相信书上写的您一定都看懂了,但是本人愚昧,未能参透。
也很懒得看书(~.~)大学的时候给老师教坏啦,^_^。只好在水里捞捞月亮~~~
至于多态的设计思想,本人现在不断的实际积累当中,如有'偶得'者,请不吝指教交流~~~
23 楼 lkjust08 2008-10-30  
LZ语言风趣,幽默,受教了。
22 楼 风花雪月饼 2008-10-29  
建议楼主看看  http://zangweiren.iteye.com/blog/221944

可能程序应改为:
interface 高级官员{
   视察();
}

class 楼主老爸 implements 高级官员{
    视察(){
      一声吼("一人交300块,不交就砍头!");
    }
}

class 楼主 implements 高级官员{
    视察(){
      私下密谈("一人600块,不给要你好看!");
    }
}


如楼主所说,基层干部认的是你的官职,谁认你老爸啊。
所以,楼主只要有高级官员这个官职就可以收钱了。。。
21 楼 rinniclyks 2008-10-29  
很形象,呵呵
20 楼 color4you 2008-10-27  
只是继承和重载而已,多态还有其他形式吧?

相关推荐

    对java中多态理解

    对 Java 中多态理解 Java 中的多态是指在不同的情况下可以有不同的行为,多态是面向对象编程的一种基本特征。多态的实现是通过方法重载和方法重写来实现的。 在 Java 中,多态可以分为两种:编译时多态和运行时...

    java多态理解

    Java多态理解 java中的多态性是面向对象编程的精髓所在。多态性是指父类引用指向子类对象,例如父类Animal,子类Cat和Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = ...

    java中多态的内存分析

    在深入探讨Java中多态的内存分析之前,我们需要先理解一些基本概念。 首先,了解Java内存模型至关重要。Java程序运行时主要涉及四种内存区域:程序计数器、虚拟机栈、本地方法栈、堆和方法区(在Java 8及以后版本中...

    北大青鸟javaOOP多态Ch03作业全集.rar

    "北大青鸟javaOOP多态Ch03作业全集.rar"这个压缩包文件很显然是针对学习者提供的一系列关于Java多态性的练习和案例,帮助学生深入理解并掌握这一核心技能。 多态性是面向对象三大特性之一,另外两个是封装和继承。...

    【Java面试题】谈谈对Java多态的理解

    【Java面试题】谈谈对Java多态的理解

    java多态的总结

    Java的多态性是面向对象编程的一个核心特性,它允许我们使用一个接口来表示不同的类,使得代码更加灵活,易于维护。多态性是通过继承、接口和方法重写来...理解并熟练运用多态,能帮助开发者编写出更高质量的Java程序。

    java 多态 经典讲解

    #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态主要通过两种方式体现:*...

    Java的多态.md

    Java的多态是学习Java的第一个重点,也是一个难点。在学习Java多态之前, 要学好封装和继承,封装和继承是理解多态的一个过程。在表现多态时,同 时也体现了封装和继承。

    java 多态.docx

    在Java编程语言中,多态(Polymorphism)是一种核心特性,它允许我们设计更加灵活、可扩展的代码。多态使得一个接口可以有多种不同的实现或者表现形式,...理解和熟练运用多态,对于编写高质量的Java应用程序至关重要。

    C++和Java多态的区别

    ### C++和Java多态的区别 #### 一、概述 多态是面向对象编程语言中的一个核心特性,它允许程序员能够使用基类的指针或引用指向派生类的对象,并在运行时根据对象的实际类型来选择合适的方法进行调用。这一特性增强...

    Java-多态--学习笔记.docx

    1. **减少耦合**:多态性减少了不同类之间的依赖关系,使得代码更易于理解和维护。例如,我们可以定义一个通用的`Animal`接口,然后让`Dog`和`Cat`等类实现这个接口,这样处理动物的行为时,只需要与`Animal`接口...

    Java多态,面向对象编程题demo.zip

    Java多态是面向对象编程中的一个核心概念,它允许我们以一种统一的方式处理不同类型的对象。在Java中,多态性主要体现在方法的重写(Override)和重载(Overload)。通过多态,我们可以编写出更加灵活、可扩展的代码...

    Java 多态应用,掌握多态

    通过学习和实践上述知识点,开发者可以更好地理解和运用Java中的多态特性,编写出更加高效、可维护的代码。对于给定的压缩包文件"com多态",可能包含了相关的示例代码或者练习,这些可以帮助你更直观地理解并掌握...

    java 三大特性--封装、继承和多态理解

    Java编程语言以其强大的功能和广泛的应用而闻名,其中三大特性——封装、继承和多态是其核心概念,对于理解和编写高效、可维护的代码至关重要。 **封装**是面向对象编程的基础,它涉及到将数据(属性)和操作这些...

    Java 多态中的类型转换

    本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...

    java多态代码

    java程序设计中,多态的实现和理解,通过代码演示java程序设计中,多态的实现和理解,通过代码演示

    java多态实验

    在这个“java多态实验”中,我们可以看到一系列小代码实例,这些实例旨在帮助理解和应用多态特性。下面我们将深入探讨多态的概念、实现方式以及它在实际开发中的应用。 1. 多态性定义: 多态(Polymorphism)源自...

    深入Java核心Java中多态的实现机制.pdf

    在深入探讨Java中多态的实现机制之前,我们需要明确多态的概念及其在编程语言中...通过实践和对文档内容的深入挖掘,我们可以更好地掌握Java多态的实现机制,并在实际开发中有效地利用多态性来编写灵活、可扩展的代码。

    源代码+报告-Java的继承和多态编程

    在Java编程中,继承和多态是面向对象编程的核心概念,它们在软件设计中起着至关重要的作用。在这个实验中,我们看到一个具体的应用场景,即实现一个小型公司的工资管理系统,来阐述这两个概念。 首先,让我们理解...

    Java中的多态.pptx.pptx

    Java中的多态是面向对象编程的关键特性之一,它允许一个接口或者抽象方法被多个不同的类实现,从而使得代码更加灵活且可扩展。多态的概念基于一个接口可以有多种不同的实现方式,增强了程序的多样性和适应性。 在...

Global site tag (gtag.js) - Google Analytics