精华内容
下载资源
问答
  • 什么是多态多态作用? 虚函数的作用? 实现多态。(预留:虚函数的实现原理) 多态是什么? “一个接口,多种表现/实现”,多态性是提供一种技术,这种技术允许将父类指针或引用赋值为子类的指针或引用,进行...

    虚函数的作用?什么是多态?多态的作用?

    虚函数的作用?

    实现多态。(预留:虚函数的实现原理

    多态是什么?

    “一个接口,多种表现/实现”,多态性是提供一种技术,这种技术允许将父类指针或引用赋值为子类的指针或引用,进行这种赋值之后,在运行时,可根据当前赋给它的的子对象的特性以不同方式运行。

    多态的作用?

    实现接口复用,把不同的子类对象都当做父类来用,屏蔽不同子类对象之间的差异,编写通用的代码,实现通用的编程,以应对需求的变化。

    展开全文
  •   在学习《大话设计模式》的时候经常会遇到多态,但什么是多态?为什么要使用多态?什么时候用多塔?多态是如何实现的?使用多态有什么好处?我们将根据以上五个问题展开激烈的讨论。 什么是多态?   多态,...

      在学习《大话设计模式》的时候经常会遇到多态,但什么是多态?为什么要使用多态?什么时候用多态?多态是如何实现的?使用多态有什么好处?我们将根据以上五个问题展开激烈的讨论。

    什么是多态?

      多态,顾名思义指“多种形态”。多态表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。

    例:猪、狗、猫都属于动物类,我们将动物类作为父类,猪“哼哼叫”,狗“汪汪叫”,猫“喵喵叫”,猪、狗、猫三者都能叫,但三者都要通过重写父类的方法才能实现。

    为什么要使用多态?使用多态有什么好处?

      我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。

    代码重用,也称代码复用, 就是说你把一个功能写成一个模块, 以便再次需要相同功能的时候,可以直接使用,而不用重新开发。
    举例: 假如你的网站需要验证码, 你就可以把验证码这个功能单独提取出来以便复用。
    通常代码复用是通过类与对象来实现的, 这也是面向对象编程与面向过程编程最主要的区别之一。

      作为面向对象的三大特性之一,多态也有代码重用的功能,还有解决项目中紧耦合的问题,提高程序的可扩展性·。

    举例:添加一个子类,继承父类,重写父类的方法。至此,该程序的扩展性得到了提升,而又不需要查看源代码是如何实现的就可以扩展新功能。

    什么时候用多态?

    • 方法中的参数
        class Program
        {
            static void Main(string[] args)
            {
                Person p=new Person();
                Audi audi=new Audi();
                p.setDriver(audi);
                p.drive();
                SBenz benz=new SBenz();
                p.setDriver(benz);
                p.drive();
            }
        }
    
        public abstract class Driver
        {
            public abstract void run();
        }
    
        class SBenz : Driver
        {
            public override void run()
            {
                Console.WriteLine("大奔");
            }
        }
    
        class Audi:Driver
        {
            public override void run()
            {
                Console.WriteLine("奥迪");
            }
        }
    
        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;
            }
        }
    
    • 方法的返回类型
        public class CarFactory
        {
            public static Driver createCar(string carName)
            {
                
                if (carName.Equals("Audi"))
                {
                    return new Audi();
                }
                else if (carName.Equals("Benz"))
                {
                    return new SBenz();
                }
                else
                {
                    Console.WriteLine("出门左拐");
                    return null;
                }
            }
        }
    

    多态是如何实现的?

    • 父类是抽象类,方法是抽象方法(没有方法体,也不能实例化),子类重写父类的方法
    • 父类中是虚方法(有方法体,能实例化),子类重写父类的方法

    小结

    • 虚方法一定要有方法体(哪怕只是大括号),抽象方法一定没有方法体
    • 虚方法可以被子类重写,抽象方法必须被子类重写
    • 如果我们不需要使用父类创建对象,它的存在只是为供子类继承。可以将父类写成抽象(关键字abstract)类,将父类的方法写成抽象方法,子类中的方法仍用关键字override重写
    • 抽象类不能被实例化
    • 多态是指类可以有多种形态,通过修改可以形成多个的实现方法。当子类从父类继承时,它会获得父类的所有方法、字段、属性和事件。若要更改父类的数据和行为,通常有两种选择,第一种是在子类的访问修饰符后加new,就是隐藏了基类(父类)的方法,第二种是在子类中重写父类的方法,更换方法里的内容。

      耐心点,坚强点,总有一天,你承受过的疼痛会有助于你,生活从来不会刻意亏欠谁,它给了你一块阴影,必会在不远的地方撒下阳光。

    展开全文
  • 什么是多态?它的作用?这两个问题我以前在看Think in Java的时候遇到过,但是已经淡忘了,重温一下。 什么是多态? 其实可以理解为“动态绑定”,它的含义就是在运行时根据对象的类型进行绑定。这是一种机制,...

    突然今天脑中出现个问题...什么是多态?它的作用?这两个问题我以前在看Think in Java的时候遇到过,但是已经淡忘了,重温一下。

    什么是多态?

    其实可以理解为“动态绑定”,它的含义就是在运行时根据对象的类型进行绑定。这是一种机制,可以在运行时判断对象的类型,从而调用恰当的方法。Java中除了static方法和final方法之外,其他所有的方法都是动态绑定的。

     

    多态的作用

    换句话说,为什么要用多态?它的作用是消除类型的耦合关系。详细的可以看Think in Java第四版第8章8.1节...

     

     

    我想概念上的问题,对工作中的作用不会太大,但是还是需要明白下比较好,起码知道自己在写些什么,另外,对于面试来说,这种概念性的问题会碰到比较多,平时积累是必要的。

     

    展开全文
  • 什么是多态? 概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。 为什么要用多态呢? 原因:我们知道,封装可以隐藏实现细节...

    什么是多态?

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

     

    为什么要用多态呢?

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

     

    多态有什么好处?

    有两个好处:

    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出来的.我们可以设计一个工厂类,专门生成汽车

    /**
    *   我们将多态使用在方法的返回类型中
    *   Driver可以是抽象类,也可以是接口,JD和Benz分别继承该类或实现该借口

    */

    复制代码

     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;
                }
            }
        }

    复制代码

    这实际上就是设计模式中的简单工厂模式!

    类型的参数.,传入参数的时候,可以传入任何一个类的对象,只要是对应的类的对象名称就可以了
    这就是多态的应用!

    展开全文
  • 多态什么

    2021-01-17 12:23:54
    多态(Polymorphism)按字面的意思就是“多bai种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等...
  • 什么是多态?为什么用多态?有什么好处?

    万次阅读 多人点赞 2018-07-13 16:48:56
    多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是我们在以后的工作中经常回用到的首先,有这样一个系统:有个学生工作从达内毕业了,作的还不错.买了辆捷达汽车.这个系统应该如何设计呢?按照OO...
  • 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下...那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开: 所谓多态就是指程序中 定义的引用变量...
  • 什么是多态

    2021-07-13 16:36:22
    什么是多态 什么是多态 多态是具有表现多种形态的能力的特征(专业说法:同一个接口实现不同的实例而执行不同的操作)。 使用多态有什么优点 减少代码量 实现多态有哪几种方式 实现多态的条件 必须存在继承 子类重写...
  • 什么是多态? 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。 为什么用多态? "封装"通过合并特征和行为来创建新的数据类型。“实现...
  • 计算机代码的可扩充性和可维护性指的是? 多态作用如何理解?
  • 面向对象编程中的四大特征分别是:抽象4102、封装、继承和多态。1653多态根据上下文,对象可以采用多种形式。程序将确定该对象每次执行所需的含义或用法,从而减少了重复代码。我国有句俗语:“龙生九子,各有不同”...
  • 对java多态作用的理解

    2020-08-10 11:15:19
    看Java核心技术这本书时,多态的内容讲解的很少,只是举个例子告诉我们怎样使用多态,而没有明确说明为什么使用多态的问题。 谈到面向对象的编程语言时不可避免的就会介绍继承,子类可以继承父类除private外的成员...
  • java 什么是多态作用

    千次阅读 2010-12-23 15:37:00
    多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能创建可扩展的程序,无论在项目最初还是添加新功能的时候都是可“生长”的程序。简单的来说多态就是将...
  • 多态作用

    2017-09-09 20:59:00
    我们知道面向对象有三大特性:封装、继承、多态。 1、封装的作用是隔离和代码重用。...下面主要介绍多态作用。 3、多态 多态其实就是接口重用。多态和继承是紧密联系的,没有继承就没有多态,而多态使...
  • 看了这个,我终于知道了为什么要用多态了 看了大量的资料和视频之后,我终于搞清了多态作用了,废话不多说,直接上干货! 多态的好处: 1.提高了代码的可维护性 2.提高了代码的扩展性 多态作用: 可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,815
精华内容 51,926
关键字:

多态的作用是什么