zoukankan      html  css  js  c++  java
  • 课后作业

    动手实验1:

    当通过super()方法调用父类的构造方法时,该方法必须是子类构造方法的第一句。

     

     

    动手实验2

     

    类型转换:

     

    问题如下图:

    回答:第二句会出错,第四句会出错。原因:虽然第一句已经把子类对象d赋值给父类对象m,但是m仍旧是父类的对象,所以用父类对象再次给子类对象赋值时需要加上强制类型转换。第四句是因为同级不同的子类之间不能互相赋值。

    动手实验三:

    问题:下面的代码输出什么结果?为什么?

    输出结果:100  200  200  200  201

    原因:前俩个结果是因为前俩个对象全是父类引用指向父类对象,子类引用指向子类对象,因此输出100 200然后子类对象赋值给父类对象,所以该父类对象是父类引用指向子类,此时,子类中对父类方法有覆盖,所以该父类对象调用子类中重新定义的方法,所以输出200,但是不管子类对父类中属性是否覆盖,该父类对象仍然引用自身原有的属性,所以parent.myValue++是对父类中的myValue进行++,后一句加上了强制类型转换,所以是对子类中属性进行操作,所以最后输出的是201.

    引用规则:

    一.当父类引用指向子类对象时:

    1、若子类覆盖了某方法,则父类引用调用子类重新定义的新方法

    2、若子类未覆盖某方法,则父类引用调用父类本身的旧方法

    3、若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性

    4、若子类未覆盖某属性,则父类引用调用父类本身的旧属性

    5、父类引用不能访问子类新定义的方法

    二.子类引用指向自身对象时:

    1、若子类覆盖了某方法,则子类引用调用子类重新定义的新方法

    2、若子类未覆盖某方法,则子类引用调用父类本身的旧方法

    3、若子类覆盖了某属性,则子类引用调用子类重新定义的新属性

    4、若子类未覆盖某属性,则子类引用调用父类本身的旧属性

    5、子类引用可以访问子类新定义的方法

     

     

  • 相关阅读:
    013.Kubernetes认证授权
    012.Kubernetes的configmap和secret配置
    011.Kubernetes使用共享存储持久化数据
    010.kubernets的调度系统之daemonset
    009.kubernets的调度系统之污点和容忍
    008.kubernets的调度系统之标签选择器
    007.kubernets的headless service配置和ingress的简单配置
    Meterpreter初探
    渗透第一课:尝试渗透
    Metasploit漏洞扫描
  • 原文地址:https://www.cnblogs.com/zhangliqiangvictory/p/7810093.html
Copyright © 2011-2022 走看看