今天有开始对多态的理解加深了,基础不好的话看别人的程序很麻烦了,要不断地测试,测试……然后想想为什么,为什么……等过了一两年再看原来的基础代码的时候友开发犯迷糊了,又开始犯迷糊,然后测试测试……回忆一下为什么这样那样……
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)”
(这里多态还没讲完^_^先和稀粥去,不拉稀的时候再过来这里吹吹鼻子)
继续说说多态吧。好久没来了,先给这里打扫打扫灰尘,上上香,各位大神走过的同时也给我留下点建议,学习学习,共同进步~~~
说到多态就要提到接口了,我觉得接口和抽象类的设计初衷是为多态服务的。怎么理解呢,先来看看需求吧(万物的发展都是以需求做驱动的)。继续上面的例子-->
分享到:
相关推荐
java多态、继承练习题,包含题目与答案,............................................................................................................
Java多态的讲解
本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...
JAVA多态图文详解ppt,详细通过各种举例介绍JAVA多态的ppt
Java 多态详解 Java 多态是 Java 编程语言中的一种基本概念,它允许开发者定义一个接口,并且可以通过不同的类来实现该接口。多态性是 Java 面向对象编程的核心机制之一,它使得程序更加灵活、可维护和可扩展。 ...
### C++和Java多态的区别 #### 一、概述 多态是面向对象编程语言中的一个核心特性,它允许程序员能够使用基类的指针或引用指向派生类的对象,并在运行时根据对象的实际类型来选择合适的方法进行调用。这一特性增强...
### Java多态经典讲解 #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态...
Java多态是面向对象编程中的一个核心特性,它允许我们以一种统一的方式处理不同类型的对象。在Java中,多态性主要通过继承、接口和方法重写(Override)来实现。这里我们将深入探讨从虚拟机(JVM)的角度来看,Java...
Java多态是面向对象编程中的一个核心概念,它允许我们以一种统一的方式处理不同类型的对象。在Java中,多态性主要体现在方法的重写(Override)和重载(Overload)。通过多态,我们可以编写出更加灵活、可扩展的代码...
【Java面试题】谈谈对Java多态的理解
在给定的“java多态作业”中,可以看到多态性的应用主要体现在实现多个接口(MouseMotionListener、MouseListener和ActionListener),这些接口代表了不同的事件监听器,每个接口都定义了一系列方法来处理特定类型的...
在Java中,多态分为编译时多态和运行时多态。编译时多态主要体现在方法的重载(Overloading),即在同一个类中可以有多个同名方法,但参数列表不同。编译器会根据传入参数的类型和数量来决定调用哪个方法。运行时...
Java多态是面向对象编程中的一个核心概念,它允许我们使用父类的引用指向子类的对象,从而实现更灵活的代码编写。在这个“java多态实验”中,我们可以看到一系列小代码实例,这些实例旨在帮助理解和应用多态特性。...
Java多态理解 java中的多态性是面向对象编程的精髓所在。多态性是指父类引用指向子类对象,例如父类Animal,子类Cat和Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = ...
Java多态的实现机制 Java 多态的实现机制是面向对象程序设计中代码重用的一个重要机制。多态性是 Java 的三大属性之一,在开发中很重要的一个环节。多态性使对象能够调用正确的方法版本,从而提高代码的重用性和...
多态在Java中有着深远的影响,它提高了代码的可重用性、灵活性和可扩展性。本篇将通过一个经典例子深入解析多态的含义,并通过实际代码展示其应用。 首先,我们要理解多态的定义。在Java中,多态性(Polymorphism)...
6. ** finalize 方法**:虽然不是直接与多态相关的,但值得注意的是,Java中每个对象都有一个finalize()方法,这是垃圾收集器在回收对象前调用的,子类可以重写这个方法进行资源清理,但这并不保证一定会被调用,...
在Java中,多态主要体现在两个方面:方法重载(Overloading)和方法重写(Overriding)。方法重载是指在一个类中可以有多个同名方法,但参数列表不同;方法重写则是在子类中重新定义父类已有的非私有方法,以提供...
### Java多态详解 #### 什么是多态? 多态(Polymorphism)是面向对象编程的一个核心特性,指的是一个接口可以被多个类所实现或一个类可以被多个类所继承,进而表现出不同的行为。在Java中,多态主要体现在两个...
Java多态是面向对象编程中的一个核心概念,它允许我们使用父类引用处理子类对象,从而实现更灵活的代码设计。在这个“Java多态案例及源码.rar”压缩包中,你将找到一系列关于Java多态的实例和源代码,非常适合教师在...