100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java多态的理解 真实开发详解 带编程 通俗白话文 简单易懂

Java多态的理解 真实开发详解 带编程 通俗白话文 简单易懂

时间:2023-02-07 09:53:08

相关推荐

Java多态的理解 真实开发详解 带编程 通俗白话文 简单易懂

如果敌人可以让你生气,那么就代表你还没有胜他的把握

首先我想吐一下槽,我想了解一下多态,网上的相关技术文档,花里胡哨的,简单的,打着解答的旗号骗鬼子的

我看完这些文章我无语了,这…,我既然来查这个东西,就代表我不太懂,结果就这,一顿花里胡哨的操作看的我头皮发麻,好不容易有些头绪的我,被这些玩意冲的一干二净;我现在口中积攒了几十年的脏话,我恨不得全部吐他们脸上!!

算了,这毕竟是一篇技术文档,多态作为面向对象的特征之一,对于新手小白来说,这玩意理解起来就像鸡蛋明明是圆的,他非要让我们抽象的理解为方的,不仅如此,他的功能从之前的孵化小鸡直接变成了一直鸡,简直抽象的不得了,面对抽象,我们就要用抽象去理解

那到底什么是多态呢?

首先看这篇文章,必须对重写、继承有一定的基础,要不然肯定看不懂,你们可以看看我之前写的,也可以去看看别人的

注意,这篇文章只是为了帮助人了解什么是多态,以及多态的作用,至于想用多态干其他东西的,直接关电脑

多态就是指同一种事物,有多种形态

我们就拿法外狂徒张三来讲,张三很有钱,因为啥有钱呢?因为张三的爸爸有钱,张三继承了他爸爸的财产;

但是张三还有一个亲生兄弟叫李四,李四同样也继承了他爸的财产,OK,现在我们需要记好以下:

张三有一辆自行车

李四有一辆电瓶车

那张三李四的爸爸呢,有一辆三轮车;

那我们抽象的理解一下,假如你想要找这一家人借一辆车去玩,那借什么车呢?你也不知道,但是你需要去看一下啊,看骑哪个车帅,你骑哪个;

但是我们找车,一个一个人的找车,太麻烦了,我们直接去找张三的爸爸,因为张三和李四的车都是从他那里继承的,他肯定知道什么车帅;

如果我们只找张三,首先我们要在测试类中new一个张三的对象,然后告诉张三把你的车调给我,然后张三就调给你了,突然你又觉得李四的车比较帅,你又得去找李四,new一个李四,李四给你调;

但是你直接找张三的父亲,张三的父亲,什么车都可以调

以上的所有信息都只是为了让你们抽象的理解,不作为教学参考,你们阅读完刚刚那个童话故事,我们现在上代码,我会选择最简单的代码,给你们讲解多态,不整那些花里胡哨的

创建以下四个类:

父类,张三类,李四类,测试类

//父类public class Fu {}

//张三类public class ZS {}

//李四类public class LS {}

//测试类public class Test {}

首先让张三和李四继承父类

//李四类public class LS extends Fu{}

//张三类public class ZS extends Fu{}

然后我们刚刚说了,张三的爸爸为什么可以调用张三和李四的车,因为他是张三老子,

那此时我们的子类以及继承了父类,是不是父类以及可以调用子类了?这里我们需要使用方法的重写,首先我们在父类写入三轮车的方法

//父类public class Fu {public void che(){System.out.println("父类的三轮车");}}

然后我们在子类中重写父类中的che方法(方法名和参数必须一模一样)

//李四类//李四类public class LS extends Fu{@Overridepublic void che() {System.out.println("李四的电动车");}}

//张三类public class ZS extends Fu{@Overridepublic void che() {System.out.println("张三的自行车");}}

现在我们父类和张三、李四各有一个方法,这个方法是重写父类的,这个也是我们多态实现的重要桥梁

那我们之前想获得张三的的方法,还怎么获得?

肯定是这样,那我们像调用李四的呢?

以上就是用创建对象来调用的,

那么如何通过父类来调用呢?

写一个add的静态方法,我们需要对张三和李四进行调用,该怎么调用?

此时,我们把ZS的对象传入进去,发现根本传入不了,运行不出效果

那时因为第一,我们是想通过父类调取子类,还有就是,张三这个对象并没有赋值到我们的静态方法内

所以:

写一个add的静态方法,方法内有一个参数,Fu代表的是指编译时,是在父类运行的,fu这个就是普通的变量,用来接收子类对象的;

随后我们把张三或李四的对象传到静态方法的fu内

在静态方法内,由于我们的fu已经获得了李四的对象,我们直接调用方法就可以了

我们想调用张三的,我们就直接改add方法传入的对象就可以了

虽然效果达到了,但是我们要写的严谨点,把new的张三李四对象前面的编译区设置成父类,就可以了

那这时我们就可以知道,是由父类调用的子类属性,就这Fu ls = new LS();一段代码,我们就可理解成多态

我们通过父类的一种方法

通过重写,完成了一种方法可以有多种形态,这种形式,就称作多态,万变不离其宗,多看多写多练,方可成神;

最后的最后,来一张心灵净化图,缓解神经疲劳

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。