多态

作者: 混世小码农 | 来源:发表于2019-03-07 13:06 被阅读0次

学习oop多态

      1.方法重载

      2.方法重写

      3.里氏替换原则

方法重载是在指同一类中相同方法的不同行为.

方法重载:构造函数就属于特殊的方法重载.

方法重载的特点:

      1.方法名必须相同.

      2.参数列表必须不相同(这里的不相同是参数类型,参数个数,以及参数顺序)

      3.在有相同参数列表个数的前提下,方法返回值不作为判断方法是否重载的依据.


重写与覆盖的区别:

覆盖:在子类中用 new 关键字修饰 定义的与父类中同名的方法,叫覆盖。


总结

1:不管是重写还是覆盖都不会影响父类自身的功能(废话,肯定的嘛,除非代码被改)。

2:当用子类创建父类的时候,如 C1 c3 =newC2(),重写会改变父类的功能,即调用子类的功能;而覆盖不会,仍然调用父类功能。

3:虚方法、实方法都可以被覆盖(new),抽象方法,接口 不可以。

4:抽象方法,接口,标记为virtual的方法可以被重写(override),实方法不可以。

5:重写使用的频率比较高,实现多态;覆盖用的频率比较低,用于对以前无法修改的类进行继承的时候。


方法的重写:是指在继承关系中不同类之间方法之间的比较和研究

  第一个关键字:virtual  (虚)

         用virtual修饰的方法称之为虚方法.

virtual一般情况下和override需要成对出现.

        如果子类重写使用了override,则父类必须拥有virtual修饰的方法

         反过来不一定成立,因为我们还有方法覆盖

第二个关键字:override (重写)

        为什么要使用方法重写呢?

       1.使用虚方法其实就是对目前的程序不是很满意,暂时方法功能是实现的,希望后面

                的程序员通过重写父类方法的方式,进行功能上的优化.

         2.可以通过继承系统提供的类,去修改系统类中提供的虚方法.

方法重写需要注意的地方:

         1.不能重写父类中用sealed修饰的方法.

         2.不能重写父类中用static修饰的方法.

         3.如果父类中存在abstract方法,子类必须重写.


LSP(里氏替换原则):

原则上讲子类对象介绍给父类对象,也可以说子类替换父类,并且出现在父类能够出现的任何地方

反过来说,父类对象是不能替换子类对象的,这种特性称为里氏替换原则

1.子类可以隐式的转为父类

2.父类必须强转子类

相关文章

  • 1.9 多态基本概念

    本小节知识点: 【了解】什么是多态? 【掌握】多态的条件 【了解】多态的优点 1.什么是多态? 什么是多态:多态就...

  • C++ 的多态(Polymorphism), virtual f

    多态 c++支持两种多态,编译时多态和运行时多态但其实编译时多态根本不是真正的多态,编译时多态就是函数的重载,ov...

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

  • 多态

    1.多态 1.多态 1.1 要点 多态是方法的多态,不是属性的多态 多态的存在有三个必要条件:继承;方法重写;父类...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • Java_basic_10: 多态polymorphism

    多态polymorphism 多态是指对象的多种形态 主要可以分为引用多态和方法多态 继承是多态的实现基础 引用多...

  • 六、多态与虚函数

    多态的基本概念 多态 多态分为编译时多态和运行时多态。 编译时多态主要是指函数的重载(包括运算符的重载)。对重载函...

  • Java基础之面向对象

    1.多态,继承,封装 Java实现多态有哪些必要条件?具体怎么实现?多态的实现原理?多态的作用? 答:多态的优点 ...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

  • 多态与虚函数

    多态的基本概念 实现了多态机制的程序,可以使用同一个名字完成不同的功能。 多态分为编译时多态和运行时多态。 多态 ...

网友评论

      本文标题:多态

      本文链接:https://www.haomeiwen.com/subject/kcismttx.html