Java大数据学习第八天----继承 重写 final 静态static 多态

继承中变量的使用

父类成员变量和子类成员变量重名时,使用 super.变量名 指定父类的成员变量

继承中构造方法的使用

  1. 创建子类对象时 会先调用父类的无参构造 因为子类的构造函数中默认存在一个super();
  2. 如果父类没有无参构造的话,我们需要手动指定子类去调用父类的含参构造super(参数);
  3. 构造方法不可以被继承,原因是构造方法必须是本类类名,不可能在子类中存在一个父类类名的构造方法

方法的重写

  1. 重写:子类对父类的方法不满意时,可以重写父类的方法

    注意:重写是在不改变父类方法的前提下,实现功能的修改,重写后,子类对象调用的就是重写后的功能

  2. 方法重写的原则: 两同 . 两小 . 一大

    • 两同: 方法名 参数列表 相同

    • 两小: 子类方法的返回值类型与父类方法返回值类型相同,或者是父类方法返回值类型的子类型

      注意: 如果父类方法的返回值类型为void 子类应该保持一致void

    • 一大: 子类方法的 修饰符权限>= 父类方法的修饰符权限

final 关键字:最终的

  1. final 可以用来修饰类 被final修饰的类是最终类 不可以被继承

    比如:     final class Father{}
    
  2. final 可以用来修饰方法 被final修饰的方法是这个方法的最终实现 不可以被重写

比如:    public final void work(){}
  1. 被final修饰的是常量 常量的值是不可以修改的
  • 注意:不管是成员位置还是局部位置,常量定义的时候必须赋值
  • 注意:常量的名称必须是全大写 单词与单词之间使用_分割

static 静态

  1. 被 static 修饰的资源是静态资源

    • 静态资源随着类的加载而加载到内存中,比对象优先进入内存
    • 静态资源不可以通过对象调用,直接通过类名调用
  2. static 可以 用来修饰成员变量

  3. static 可以用来修饰方法

  4. 静态资源在内存中只有一份 而且会被全局所有对象共享,

    不管我们使用哪种方式修改了静态变量的值 使用任何方式来查看 都是静态变量那个刚刚被修改了的值

  5. 普通资源可以调用普通资源 也可以调用静态资源

    静态资源只能调用静态资源

  6. 静态区域中 不可以使用this super 关键字 因为静态区域优先于对象加载 this super是调用对象的

  7. 静态代码块:

    • 格式:static{ }

    • 位置:类里方法外

    • 执行时机:随着类的加载而加载,优先于对象进行加载【只加载一次】

    • 作用:用于加载那些需要第一时间就加载,并且只加载一次的资源,常用来初始化

    • 顺序:静态代码块 构造代码块 构造方法 普通方法【如果普通方法里有局部代码块,执行局部代码块】

      如果有多个静态资源,加载顺序取决于先后位置

多态

  1. 前提:

    • 继承
    • 重写
  2. 创建多态对象–口诀

    • 父类引用指向子类对象

      解释: 创建出来的 子类类型对象的地址值 交给 父类类型的引用类型变量来保存

    • 编译看左边 运行看右边

      解释: 必须要在父类中定义这个方法才能通过编译 把多态对象看成是父类类型

      ​ 必须要在子类中重写这个方法 才能满足多态 实际执行的是子类方法

    • 父类对象不可以使用子类的特有功能

    • 多态对象也不可以使用子类的特有功能

  3. 资源使用情况:

    • 成员变量使用的是父类的成员变量

    • 成员方法使用的是父类的方法定义,子类的方法体

    • 如果多态对象调用的是子类没有重写过的方法,方法定义与方法体使用的都是父类的,所以这个不符合多态的前提,直接使用纯纯的父类对象调用即可

你可能感兴趣的:(Java大数据学习,java,big,data,开发语言)