`
caoliang313
  • 浏览: 1039 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

突然想到一个很简单的例子来说明接口和多态

阅读更多
假设你(对象A)和你同学(对象B)去找工作,有一家公司(对象M)有个部门(对象M内的方法a)招聘翻译人员(方法a的参数是接口a,这时接口a的意思就是翻译技能),你拥有翻译技能(对象A实现了接口a),而你的同学不拥有翻译技能(对象B没有实现接口a),所以,你被该部门录用了(方法a能传递实现了接口a的对象)

这就是接口的用处

然后是多态,延续前面的例子,部门需要翻译一篇文章(接口a有个方法:翻译文章)而你由于有翻译技能(对象A实现了接口a)所以该部门指派你去翻译文章(方法a传递了实现了接口a的对象A)而你的同事(对象Q)也有翻译技能(对象Q实现了接口a)也被指派去翻译文章(方法a传递了实现了接口a的对象Q)

这就是多态

后面属yy……



然后你和你同事一同开始了翻译工作(对象C指派)你翻译着,突然一个单词不认识(wordNotFoundException…)你使用了新英汉词典(catch…翻译方法内捕获)由于字典找出来的词一般意思不太准确,所以为这个单词做了标记(finally…)
而你同事就惨了,刚接到翻译,第二天就出车祸死了(dieException…由于翻译方法内没有捕获该Exception的catch,所以被抛出)你的公司了解到了情况(catch到了dieException)这时有几种情况:
情况1:然后又派了个人过来继续完成你同事的遗稿(调用方法a的重载方法,传递了对象Q1和从dieException内获取的String-遗搞)全部完成后告诉公司有人死了(throw employeeException,内包含死讯)
情况2:先派人给公司打了个电话通知情况(启动一个线程,调用打电话方法,参数是死去员工的情况)然后叫我把他剩下的也翻译掉(接口a内有个方法:add)
情况3:由于员工的缺失导致整个翻译任务中断(catch内直接throw employeeException)分部门得知后上报人事部,人事部上报总公司……(不停的被throw,期间可能做过一些垃圾回收处理与初始化,比如把那人从部门除名,把那人的的办公桌清理完等)最后某个相关部门catch到了这个exception,把他送交了他父母手里(giveTo(B,hisParents)),他父母把他火化(B.beFired(电磁炉);B=null),然后他们夫妻又生一个,出现了一个新对象X。
假设你是上帝(coder……)想要创造这个新对象X,那你的上帝之手就是反射!当然,父母的抽象对象传递进来后可以用instanceof判断父母是哪类人(父类),和哪些性格(接口),再获取一些父母的特性(get对象属性,如黄皮肤,黑头发等)来给新生命做参考,random一下都可以……最后给拼接好的代码使用反射运行起来,就完成了……

yy完毕继续上班
0
0
分享到:
评论

相关推荐

    Java 语言程序设计:第5章接口多态.ppt

    例如,声明一个接口 Shape2D,可以利用它来实现二维的几何形状类 Circle 和 Rectangle,把计算面积的方法声明在接口里,pi 值是常量,把它声明在接口的数据成员里。 5.2 塑型 5.3 多态的概念 多态是 Java 语言中...

    接口的多态实现

    在编程领域,接口的多态实现是面向对象设计的一个核心概念,它允许代码具有灵活性和扩展性。接口在Java、C#等面向对象语言中扮演着重要的角色,它定义了一组方法签名,但不提供具体实现。类可以实现一个或多个接口,...

    多态和接口学习笔记

    在Java编程语言中,多态(Polymorphism)和接口(Interface)是两个核心概念,它们对于理解和构建面向对象程序至关重要。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。接口则提供了类之间的抽象连接...

    C#继承,接口,多态的实现与区别

    在C#编程语言中,继承、接口和多态是面向对象编程的重要概念,它们共同构建了C#类体系的灵活性和可扩展性。下面将详细阐述这三个概念的实现方式、功能以及它们之间的区别。 首先,**继承(Inheritance)**是C#中类...

    第5章(接口与多态).ppt

    一个类可以实现多个接口,使用 implements 关键字,语法如下:public class 类名称 implements 接口名称 { /* Bodies for the interface methods */ /* Own data and methods. */ }。在实现接口时,需要注意该类必须...

    多态继承接口结构例子

    下面是一个结合多态、继承、接口和结构的C#代码示例: ```csharp // 接口 interface IShape { void Draw(); } // 基类 class Shape : IShape { public virtual void Draw() { Console.WriteLine("绘制形状"); ...

    详解java接口、继承和多态

    ### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...

    Java抽象类接口与多态PPT教案学习.pptx

    接口的本质目的在于定义一个契约,供实现类来实现。接口可以定义一些通用的方法,然后由实现类来实现这些方法。 三、多态 多态是Java中的一个重要概念,指的是同一个对象可以有多种不同的表现形式。多态的主要特点...

    实验报告3-Java的接口实现多态

    本实验报告“实验报告3-Java的接口实现多态”旨在探讨如何通过接口来实现多态性,这对于理解和掌握面向对象编程的核心概念至关重要。 首先,接口在Java中是一个包含抽象方法和常量的特殊类。它们不包含实例变量,不...

    C++继承与多态例子

    继承允许我们创建一个新类(子类),它继承了另一个类(父类)的属性和方法,从而实现了代码的重用和扩展。多态则是指同一种行为在不同对象上表现出不同的形式,增强了程序的灵活性。 首先,让我们详细讨论继承。在...

    继承接口与多态

    在编程世界中,继承、接口和多态是面向对象编程(OOP)三大核心特性,它们为代码的组织和重用提供了强大的工具。本篇将深入探讨这些概念及其在实际编程中的应用。 首先,让我们从“继承”开始。继承是面向对象编程...

    java 接口 类 继承 多态的简单实例

    Java编程语言以其面向对象特性,包括接口、继承、多态性等核心概念,为开发者提供了强大的设计和实现能力。...对于初学者来说,这是一个很好的起点,而对于经验丰富的开发者来说,也是一个复习和巩固基础知识的好机会。

    一个HW 多态题目 一个HW 多态题目

    多态是指一个接口可以有多种不同的表现形式或行为。在C++中,多态主要通过虚函数实现。当基类指针或引用指向派生类的对象时,调用虚函数会根据实际的对象类型来执行相应的函数实现,这就是动态绑定或运行时多态。在...

    多态代码实例

    多态允许我们使用一个通用的接口来处理不同类型的对象,提供了代码的灵活性和可扩展性。虚函数(Virtual Function)是实现多态的一种方式,尤其是在C++语言中。本文将通过两个具体的代码实例,帮助你深入理解和掌握...

    一个多态的例子

    最近看DELPHI高手突破,把里面多态的说明,用代码实现了一下。多态性是允许用户将父对象设置成为与一个或更多的它的子对象相等的技术,赋值之后,基类 对象就可以根据当前赋值给它的派生类对象的特性以不同的方式...

    10.【接口、多态】.zip

    接口提供了一种定义规范的方式,允许不同类实现相同的行为,而多态则利用接口或继承来实现代码的灵活性和可扩展性。 接口在Java中是一种完全抽象的类型,它只包含方法声明,没有方法体。通过定义接口,我们可以强制...

Global site tag (gtag.js) - Google Analytics