ITPub博客

首页 > 应用开发 > Java > Java中的多态详解

Java中的多态详解

原创 Java 作者:码邦主666 时间:2021-01-04 13:52:55 1 删除 编辑

一、多态的概念

多态分为类的多态和方法的多态,类的多态就是一个类型可以有不同的表现形态,什么样的类型才会具备多态呢?只有被多个子类继承或者实现的父类才具备多态的特征,因为在运行期间可以根据具体的子类表现出不同的状态,比如说一个父类Person有Student、Worker、 Teacher、 Farmer 四个子类,在运行的时候如果实例化的子类是Student则此时Person表现是学生的行为、如果实例化的子类是Worker则此时Person表现是工人的行为,这就是父类表现出来的多态,类的多态的表现就是向上转型和向下转型。

方法的多态就是一个方法名称却有不同的实现,其实就是方法的重载,在调用方法的时候具体调用哪一-个是在运行期根据传递的实际参数的类型来确定调用哪一个方法,也就是同一个方法名称可以有不同的表现形式,这就是方法的多态。方法多态的表现就是方法的重载。

 

二:类多态的好处

思考一个需求:有四个类Student、Worker、 Teacher、 Farmar, 要求在一个 类中定义方法来将以上的类作为方法的参数接受。现在能想到可以使用方法的重载接受。 java电子书面试题开发工具等需要的可以加我的讨论交流裙697888503资料免费下载

DEMO:方法的重载解决需求

v2-385c394d05677bc61eeb089be34c7db7_720w.jpg

v2-bf53f0c22d52a6a2f50f6483d95e3580_720w.jpg

v2-4209737873e1738318533468bc907f80_720w.jpg

v2-4490bb0bdf36d9e2a4d9a8e37c40ea20_720w.jpg

v2-39dc919041bbcf5c4621a8ee38584351_720w.jpg

v2-c6021f9c5a9cd59a58d4cb785a79f2ac_720w.jpg

v2-c11ba339be9ac9ec0e26aaae9c10194b_720w.jpg

v2-c0c4007b0a88a3206e3fdf3bf1ecedf1_720w.jpg

v2-37945b18c322da8edc225786e5ff27fa_720w.jpg

此时可以使用重载方法实现需求,但是存在很大的弊端,假如有一万个类型需要接受那么需要在Aplay中重载方法一万次,这样的代码应变性不高,耦合度高,依赖性强,此时我们可以使用多态的特征解决(向上转型),可以将接受参数的方法的参数类型定义为所有类的父类。

DEMO:使用多态实现

v2-5a2b86fbc8af10a9f31960a069934e4e_720w.jpg

v2-0090130471e8a9b048817592bd416685_720w.jpg

v2-e210bc62d39d8ed2b4df9e5428e2ea4b_720w.jpg

v2-49fc9d7ede27fd8da7614aa874448cff_720w.jpg

v2-1657b98061f6bab6f7b41e11c66aa3c7_720w.jpg

v2-87be7d2b8529bce8530c5f4dacd71702_720w.jpg

v2-8598eccc17ffc74edf78e49f956391ab_720w.jpg

v2-37f69347be7961a0de43f0e7817716ab_720w.jpg

此时Aplay类中的getInfo方法就不需要重载了,这就是多态的好处的直接体现


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985551/viewspace-2747244/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-10-16

  • 博文量
    141
  • 访问量
    79730