zoukankan      html  css  js  c++  java
  • 面向对象之多态性(基类引用可以指向子类)

    1、派生类的对象和基类是属于的关系,即 对象 is a X类,对象属于X类。

    2、多态性的概念:

    了解多态性之前,要熟悉引用和对象的区别:

    对象存储在堆中,引用(符)存储在栈中,引用符的值是对象在堆中的地址,因此通过引用符可以轻松地找到对象。

    一般情况下,引用符和对象属于同一类型,基类的引用指向基类的对象,派生类的引用指向派生类的对象,但是我们知道,派生类对象也属于基类,所以基类引用符可以指向派生类对象。

      一个基类的引用符,可以指向多种派生类对象,具有多种不同的形态,这种现象叫多态性。这种方式经常用作设计模式中的工厂模式。

    3、接口

    接口实际上就是一个类,只是这个类只声明成员,而不具体实现。故不能创建接口的实例,继承自接口的类必须实现接口的所有方法。接口也能很好的体现多态性,当函数中参数类型为基接口时,则不管是什么类,只要这个类继承于基接口,均可以根据实例化情况来调用。

    4、接口、抽象类的相似之处和不同:

    接口和抽象类均不能实例化,而且要求派生类实现其抽象方法,但不是必须全部实现。

    但抽象类有更多的功能:可以由子类继承,而且可以包括状态数据和具体方法。

    5、接口和类的区别:

    接口不能从类继承,而类可以实现接口(继承接口);

    接口可以继承多个接口,而类虽然可以继承多个接口,却只能继承一个类。

    接口成员必须是方法、成员属性、事件或索引器。(注意无数据成员)

    所有接口成员必须能公开访问。

    6、用类?用接口?

    当决定使用类还是接口类型,即查看类型与继承子类之间的关系。接口为类定义一种行为,即它“能做什么”,它允许对象创建自身的副本。另一方面,当继承子类“一种”基类时,就应该使用类。例如:可以创建shape(形状)作为基类,创建circle(圆)作为shape的子类,而将改变形状大小的功能作为一个接口方法。

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/2237159.html
Copyright © 2011-2022 走看看