• IT第十九天


    IT第十九天

    上午

    继承

    1.一般情况下,子类在继承父类时,会调用父类中的无参构造方法,即默认的构造方法;如果在父类中只写了有参的构造方法,这时如果在子类中继承时,就会出现报错,原因是子类继承父类时无法传入参数给父类来“实例化”父类,此时解决办法有:

    (1)同时在父类中加入一个无参的构造方法,但这样可能会限制子类继承父类时的参数传递

    (2)在子类中也增加构造方法,并在构造方法中,使用super()对父类中的构造方法进行传参,帮助实例化,这样既可以调用无参构造方法“实例化”父类,也可以调用有参构造方法“实例化”父类,super必须写在第一行,因为必须先实例化父类,才能实例化子类,继而执行子类中的代码

    2.super()是父类的一个实例对象

    3.父类中protected修饰的属性,在异包的子类中可以访问,但是默认的修饰符protected修饰的属性不可以访问;而实例化子类的类如果不和父类在同包中,也无法访问protected显示修饰的属性

    多态

    1.多态就是根据方法的需要,父类可以使用不同的子类的实例进行不同的操作

    2.反射的作用,反射可以读取实例化的类的类信息,如:instanceof可以获取实例的数据类型

    3.父类是调用不到子类实例新增的方法和属性,但是重写父类的方法可以调用,因此在使用多态时,为了实现具体的功能,需要在子类中对父类的方法进行重写,重写可能会引用到的方法,而不是在子类中新增方法进行功能的实现;

    4.类中的所有属性和方法都是对象,是“引用数据类型”,因此在父类调用子类的实例的方法时,是类似指针的依父类中的方法进行到子类中匹配,如果父类中没有该方法,那父类中也就不会有相应的指针去指向子类中的新方法

    下午

    多态

    1.异常ClassCastException:类型转换异常,在使用强制转换进行子类实例化父类,并进行强制转换父类成子类时,可能工具不会报错,但是在运行时会报错ClassCastException,这时由于子类中的属性或方法可能在父类中没有,因此可能造成“指针在父类中找不到对应的属性或方法

    2.综上,子类不能接受父类的实例”

    再谈装箱、拆箱

    1.父类实例化子类时,就是一次装箱的过程,因为子类要比父类更具体,当使用父类new子类时,就是将更具体的变得模糊

    2.拆箱是将父类实例化子类的变量强制转换成该子类或父类(父类是父类的父类)

    接口

    1.类可以实现多个接口,接口可以继承接口,类在实现子接口的同时,也就相当于同时实现了父接口,因此可以用父接口去实例化该类

    2.接口就是为多态服务的,包括继承、重载也是为多态服务,多态又是面向对象的编程思想的基础

    晚上

     

     

    笔记

    1.在类的继承中,super()的使用

    2.默认修饰符与protected对于父类中的属性的控制

    3.父类可以实例化子类,但是子类不可以实例化父类,可能会导致ClassCastException报错

    4.父类在实例化子类时的原理,即:根据子类中的方法和属性指针到子类中的方法,因此,子类中新增的方法或属性,父类实例化的子类是访问不到的

    5.关于父类实例化子类的理解,即:装箱、拆箱的操作,父类实例化子类是对子类实例的引用,而在进行强制转换成子类时,也是对子类实例引用的强制转换

    6.接口可以继承接口,一个类可以实现多个接口,一个类在继承父类的情况下,也可以继续实现多个接口,继承在前

    7.接口中的方法是抽象方法,并且不能带有方法体,接口中的属性是静态的、final类型的属性,即:常驻内存并且一经声明、赋值就不可改变的定值

    8.接口和继承就是为多态所做的服务,多态也是面向对象的编程思想的基础

  • 相关阅读:
    STM32启动BOOT0 BOOT1设置方法
    端口映射
    端口映射
    静态路由配置
    静态路由配置
    NETGEAR路由器登录不上 重新获取ip
    NETGEAR路由器登录不上 重新获取ip
    GSM AT指令 SIM900A TC35
    GSM AT指令 SIM900A TC35
    TTP223 触摸按键
  • 原文地址:https://www.cnblogs.com/Wfei/p/3276287.html
Copyright © 2020-2023  润新知