- 浏览: 208666 次
- 来自: 深圳
文章分类
- 全部博客 (161)
- java (15)
- JSTL (3)
- 分页 (4)
- JDK (1)
- 正则表达式 (1)
- struts (2)
- JS (11)
- Tomcat (7)
- XML (1)
- JSP (7)
- MD5加密 (1)
- log4j (1)
- SVN (11)
- Jquery (2)
- myeclipse (3)
- 聚生网管2011 (1)
- 验证码 (2)
- Hibernate (2)
- Andriod (1)
- 网站测试 (2)
- ajax (1)
- linux (2)
- Spring (4)
- oracle (1)
- 个人所得 (4)
- Html (1)
- CSS (1)
- mysql (15)
- 省市区(县)联动 (2)
- 网页背景音乐 (3)
- FTP服务器搭建 (1)
- FTP (3)
- 404 500错误 (2)
- 网站域名绑定 (1)
- 遇到比较纠结的问题 (1)
- 记住密码 (1)
- QQ在线交谈功能 (1)
- Mail (1)
- java邮件 (1)
- java高并发 (1)
- 注册码 (0)
- HTTP状态码 (1)
- PHP (11)
- DZ论坛 (9)
- dz (1)
- ISAPI_Rewrite3 (1)
- asp (3)
- SEO (1)
- dedecms (2)
最新评论
-
shaode2012:
一个个网上都是宁愿写那么多的代码,文字,也没见到几个愿意用数据 ...
省市区(县)联动代码 -
lqfACCP:
...
Pager标签库(分页显示)详解
今天有开始对多态的理解加深了,基础不好的话看别人的程序很麻烦了,要不断地测试,测试……然后想想为什么,为什么……等过了一两年再看原来的基础代码的时候友开发犯迷糊了,又开始犯迷糊,然后测试测试……回忆一下为什么这样那样……
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)”
(这里多态还没讲完^_^先和稀粥去,不拉稀的时候再过来这里吹吹鼻子)
继续说说多态吧。好久没来了,先给这里打扫打扫灰尘,上上香,各位大神走过的同时也给我留下点建议,学习学习,共同进步~~~
说到多态就要提到接口了,我觉得接口和抽象类的设计初衷是为多态服务的。怎么理解呢,先来看看需求吧(万物的发展都是以需求做驱动的)。继续上面的例子-->
老子就快死翘翘了,但是老子不甘心自己死了就因此没有了官位啊(先回家了^*^)
发表评论
-
专门下载jar包文件的地址
2013-04-28 23:51 998专门下jar文件的地址 http://www.java2s ... -
java常见的3种注解(Annotation)
2013-04-28 00:11 9221.@Deprecated 2 @Override ... -
JAVA中String与StringBuffer的区别(转载)
2013-04-27 00:37 572String和StringBuffer的区别 ... -
java 获取汉字拼音首字母
2013-01-22 09:39 1543在项目中要更能根据某 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法 .
2012-07-31 13:40 673PermGen space的全称是Permanent Ge ... -
使用EditPlus配置Java编译环境
2012-06-04 09:10 827初学者更适合使用文本 ... -
Java 集合框架(Collection)和数组的排序
2012-04-26 10:42 875根据约定,在使用java编程的时候应尽可能的使用现有的类库 ... -
cmd 编译文件夹下的java文件
2012-04-11 14:05 1606在cmd下直接编译java文件 如果有MathDemo. ... -
JAVA入门教程: 第 四 章 流 控 制
2012-03-12 09:11 635与 C、 C++相 同 ,Java程 序 通 过 流 控 制 ... -
JAVA入门教程: 第 五 章 数 组
2012-03-12 09:12 773数 组 是 有 序 数 据 的 集 合 ,数 组 中 的 每 ... -
JAVA入门教程: 第 六 章 对 象、类、包和接口
2012-03-12 09:13 681在 前 面 几 章 中 ,我 ... -
详谈网站开发规范
2012-03-09 17:52 680任何一个项目或者系统 ... -
JAVA注释方法及格式
2012-03-15 12:35 1306JAVA注释方法及格式 1、单行(single-line)-- ... -
java Date
2012-03-05 11:18 706[/color][color=green] 1.计算某一月份的 ...
相关推荐
在C#编程语言中,重写、重载和多态是面向对象编程的三大核心特性,它们对于构建灵活、可扩展的代码结构至关重要。 首先,我们来看“重写”。重写(Override)允许子类对从基类继承来的方法进行重新定义,以便提供...
总结起来,继承、多态、重载和重写是面向对象编程中的核心概念,它们相互关联,共同构建出灵活、可扩展的代码结构。通过继承,我们可以构建类的层次结构,多态则提供了代码的通用性和灵活性。而重载和重写则是实现...
在C#编程语言中,多态(Polymorphism)、重载(Overloading)和重写(Overriding)是面向对象编程的三个核心概念,它们分别提供了不同的功能和灵活性。下面我们将详细探讨这三个概念以及它们之间的区别。 首先,...
### 重载、重写、覆盖与多态的深刻剖析 在面向对象编程语言中,如Java、C#等,重载(Overloading)、重写(Overriding)、覆盖(也称为重写)以及多态(Polymorphism)是几个非常重要的概念。它们之间既有关联又有...
Java 中的重载、重写、继承和多态是四个不同的概念,它们之间存在一定的关系,但也存在明显的区别。 重载(Overload) 重载是指在同一个类中可以定义多个同名的方法,但这些方法的形参个数或类型必须不同。编译器...
编译时多态通常通过方法重载实现,而运行时多态则通过方法重写实现。 #### 2. 覆盖与重写 - **覆盖**:在面向对象编程中,“覆盖”通常指的是子类对父类中的方法进行重写的过程。 - **重写**:当一个子类继承自一...
Java语言中的覆盖(Override)和重载(Overload)以及多态(Polymorphism)是面向对象编程的重要概念,它们是实现代码复用和灵活性的关键。 **多态性(Polymorphism)** 多态性是Java中一种允许一个接口有多种实现的方式。...
2. 多态:C++中的多态性可以通过函数重载和运算符重载来实现。函数重载是指多个函数具有相同的名称但具有不同的参数列表,而运算符重载是指对运算符的重新定义。多态性可以在编译时和运行时实现,运行时多态性需要...
在Java编程语言中,重载、重写、继承与多态是四个非常核心的概念,它们在面向对象编程中扮演着至关重要的角色。接下来,我们将详细探讨这些概念,并通过实例加以说明。 ### 重载(Overload) 重载是指在同一个类中...
Java编程语言中的重载、继承、重写和多态是面向对象编程的四个核心概念,它们各自具有独特的功能和用途。 1. **重载(Overloading)**: 重载发生在同一个类内部,指的是可以有多个同名方法,但这些方法的参数列表...
在Java编程语言中,方法重写(Method Overriding)和重载(Method Overloading)、多态(Polymorphism)、抽象类(Abstract Class)与抽象方法(Abstract Method)以及`instanceof`关键字是核心的面向对象特性。...
Java中的多态性是面向对象...综上所述,Java中的多态性、重载和覆盖是强大的工具,它们帮助开发者编写出更加灵活、可扩展的代码,体现了面向对象编程的核心理念。理解并熟练运用这些概念对于提升Java编程技能至关重要。
在面向对象的世界里,多态性(Polymorphism)是三大基础特性(封装、继承、多态)之一,是实现灵活性和可扩展性的关键。多态允许我们使用一个通用的接口来处理不同的数据类型或行为,极大地提高了代码的复用性和可...
Java程序设计中的继承、多态、重载与接口是面向对象编程的重要概念,它们构成了Java类体系的基础。让我们深入探讨一下这些主题。...继承、多态、重载和接口的组合,让Java成为了一种强大的面向对象编程语言。
在面向对象编程中,重载、覆盖、多态和函数隐藏是几个重要的概念,它们共同作用于类的继承体系中,影响程序的行为和扩展性。下面将详细解释这些概念,并通过C++中的代码示例来加深理解。 首先,函数重载...
* 对父类Shape中getSide方法进行重写,实现多态 * @return */ public int getSides() { return 3; } // end // begin /** * 3. 重写和被重写方法返回值必须相同 * 此方法错误 */ // public double ...
3. **目的**:重载是为了提供多种操作方式,而重写是为了实现多态,使子类能自定义父类方法的行为。 4. **编译时期与运行时期**:重载是编译时期决定的,编译器会根据实际参数选择合适的方法;重写是运行时期决定的...
在Java中,多态有两种形式:编译时多态(方法重载)和运行时多态(方法重写)。运行时多态是通过接口或继承实现的,它依赖于对象的实际类型而非声明类型。 3. **重写(Override)**: 当子类需要覆盖或修改父类中...