zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第十章-多态-成员变量

    一.

    下面讲述多态出现以后,继承体系中所涉及的成员的一些特点。

    想要讨论多态,没有继承是不行的。

    不写构造函数,是因为构造函数是固定在静态中,是子类的实现过程?

    成员函数是非静态的。

    接下来就对这个三个进行介绍。

    接下来的讲解中,只介绍特殊情况,非特殊情况没有特点。

    只要一说多态,就出现父类引用指向子类对象。

    二. 成员变量

    这运行的结果是3,之前我一直在犹豫到底是3还是4?有一点是毋庸置疑的,就是肯定只有一个子类对象,但是父类中的一些数据是附着在子类对象中的,就像这里的父类的int num=3,这个成员变量也是存在于子类对象中。一定要牢记,所有的所有都有前提,这里的前提就是继承,从第一句开始,就是子类开始继承父类,一切和父类相关的东西都开始附着于子类中。

    Fu f=new Zi(); 这里是子类对象强制提升为父类,那么接下来的输出f.num,输出的当然是父类的num。

    覆盖只发生在函数上,和成员变量没关系,所以不存在4覆盖3。

    如果父类中没有num,那么会有输出么?没有,因为虽然本质是子类对象,子类对象中也有num,但是那是子类对象的num,这里是在调用父类的num。DOS会直接报错。

    猫有九条命,但是猫变成动物之后,动物有九条命么?没有的,动物是为了扩展,泛指很多种类的,不存在九条命这一说法。

     

    如果换一种写法,需要小心。这里子类中虽然没有num,但是由于继承的关系,它里面就有了父类的num。但是这里讲述的是多态,所以这个写法仅作了解。

     为什么这个成员变量这一块是作为了解呢?就是因为实际中使用是不一样的,不会出现子父类中都有num,不合适。

    开发的时候,父类都有这个属性,子类干嘛还要重新设定,直接继承过来就可以的。只有面试的时候才会使用。

  • 相关阅读:
    windows p12(pfx)个人证书安装过程
    OpenSSL库验证PKCS7签名
    Crypto库实现PKCS7签名与签名验证
    windows 系统中打开一个数字证书所经历的过程
    DBA不可不知的操作系统内核参数
    MySQL大表优化方案
    深入浅出Cache
    Git Stash用法
    Git服务器搭建全过程分步详解
    laravel 5.1 性能优化对比
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7828406.html
Copyright © 2011-2022 走看看