商务服务
什么是多态?为什么用多态?有什么好处?多态在什么地方用?
2024-11-26 04:21

什么是多态

什么是多态?为什么用多态?有什么好处?多态在什么地方用?

概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。

 

为什么要用多态呢

原因:我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类;它们的目的都是为了——代码重用。而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量。

 

多态有什么好处

有两个好处

1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承  2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用

 

多态在什么地方用

可以用在方法的参数中和方法的返回类型中。

在方法中的参数,请看下面的例子

   public abstract class Driver
    {
        public void run();//让子类来运行
    }
class SBenz : Driver
    {
        public void run()
        {
            Console.WriteLine("Benz在以200迈的速度在run");
        }
    }
 class JD : Driver
    {
        public void run()
        {
            Console.WriteLine("JD is running...");
        }
    }
 class Person
    {
        private Driver driver;
        public Person()
        {
        }
        public Person(Driver driver)
        {
            this.driver = driver;
        }
        public void drive()
        {
            driver.run();
        }
        public void setDriver(Driver driver)
        {//运用参数多态,以后不管买什么车都可以
            this.driver = driver;
        }
   }
static void Main(string[] args)
        {
            Person p = new Person();
            JD jd = new JD();//刚开始没钱就买辆JD吧
            p.setDriver(jd);
            p.drive();
            SBenz benz = new SBenz();//有钱换车了
            p.setDriver(benz);
            p.drive();
        }

 

在方法的返回类型中,请看下面的例子

上面的例子中,不管是JD还是Benz都是我们自己直接new出来的.我们可以设计一个工厂类,专门生成汽车

 public class CarFactory
    {
        public Driver factory(String carName)
        {
            if (carName.Equals("JD"))
            {
                return new JD();
            }
            else if (carName.Equals("Benz"))
            {
                return new SBenz();
            }
            else
            {
                Console.WriteLine("对比起,不伺候");
                return null;
            }
        }
    }

    以上就是本篇文章【什么是多态?为什么用多态?有什么好处?多态在什么地方用?】的全部内容了,欢迎阅览 ! 文章地址:http://sicmodule.glev.cn/news/10722.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 歌乐夫资讯移动站 http://sicmodule.glev.cn/mobile/ , 查看更多   
最新新闻
八字看2025年运势好坏 2025年流年八字运势测算
2025年即将来临,对于很多人来说,这一年是否会带来好运,是否能改变命运的走向,都是关心的焦点。在命理学中,八字作为古老的预
离开屏幕近1000天,李子柒去哪儿了?
  李子柒为什么消失得这么彻底?与粉丝告别近1000天,关于李子柒的讨论仍时常冲上热搜。  自2021年7月,李子柒停更至今,账
文化中国行丨带动“非遗热”,需要更多“李子柒”
  “沉淀”三年,李子柒以“传统文化创作者”的标签携新作品回归,迅速点燃网络。  11月14日,百度百科AI非遗馆点亮仪式在成
李子柒复出:三年蛰伏后的乡村奇迹与文化使命
在这个社交媒体与短视频盛行的时代,如果说谁是其中的佼佼者,李子柒无疑在榜单之上。时隔三年,她重返公众视野,以一段名为“紫
3个不会过时的暴利行业(值得收藏)
最近几年,好多传统行业都不太景气,不是在裁员就是在关门,这让很多人都感到担心和不安。但生活还是要继续的嘛,赚钱的方法总还
2025年做什么行业比较好?选择合适的行业助力未来发展
随着科技的不断进步和市场需求的变化,选择一个合适的行业至关重要。进入一个前景广阔的行业,不仅能为个人提供更多的机会,也能
2025乙巳年,你会有哪些变化?
人生犹如一局棋局,每一步都蕴含着不可预测的变数。古人有云:一着不慎,满盘皆输,而在当今这个瞬息万变的时代,我们更像是置身
惊讶!这7个副业收入竟然这么高
在本文中,我们将探索互联网发展的几个关键方向,并提供具体的参考意见。自互联网诞生以来,前18年主要用于基础设施建设。然而,
李子柒之前为什么消失得那么彻底?到底发生了什么?
最近很多小伙伴反映收不到我们的推送,为了避免错过我们的精彩内容,欢迎大家将我们设置为星标,并多多【点赞、在看、转发】哦!
张志安:算法让人看见更大的世界
进入移动互联网时代后,"素人"一夜爆红的现象似乎已经司空见惯,例如"听劝理发师"、"菏泽树哥"等一个个普通百姓迅速成为"网红大