面向对象特征之一:多态

版权声明: https://blog.csdn.net/qq_36652405/article/details/80230685

有小伙伴看到这篇文章就在想多态是不是很难,我可以告诉你:并没有

简单的说,多态(继承多态)指的是    在父类中的行为在子类中有多种不同的表现形式。

还不能理解?

话不多说我们直接看代码:


上面父类中的teachLession()抽象方法 被子类进行了重写,第一种表现形式是教  多态,第二个种表现形式是教  JavaScript

父类中的行为(teachLession() 方法)在子类中有多种(两种)表现,这不就是多态(继承多态)么。

你以为这样就完了?不可能的,不存在的,这辈子都不可能讲一个知识点。

现在我们定义一个领导类,用来对老师进行查课


领导开始查课


这样子我们已经对两个老师进行查课了,那如果有几百个老师那是不是要写几百个查课方法,写几千行代码呢?是不是会发现总感觉代码重复很多?所以得进行优化,我们可以只用一个方法就将所有不同学科的老师全查课。这个时候就用到了多态的另外一个知识点:

多态中子类的实例可以用父类的类型来接收。

有人就会问这啥意思啊,请看下面代码:

开始我们是这样写的:


然后我们用上面那个知识点进行优化,如下:


有人问这啥意思啊,其实上面那段知识点已经很清楚了,子类的实例——>jt,用父类来接收——>Teacher 父类。

有人看到这觉得也没啥用啊,没feel。

我们在继续创建wt对象:


然后Leader类中我把东西全删了(这已经在优化中)


然后我们贯彻    只用一个方法就将所有不同学科的老师全查课  这个思想进行下去。


jt 和 wt都是用Teacher 类型来接收的,所以参数能传递进checkTeacher方法,由此减少了代码量。





猜你喜欢

转载自blog.csdn.net/qq_36652405/article/details/80230685