2020.7.28 抽象类

发布于 2020-07-27  29 次阅读


1.学习内容

  • 继承

    • 使用:
      • 一个抽象内容可以定位父类,
      • 多个同类型子类可向上抽取定义一个父类
    • 继承父类的方法属性(private不被继承)
    • 关键字:extends
    • 优点:提高代码复用,多态的前提
    • 缺点:高耦合
  • 重写

    • 属性和方法在父类中存在,在子类中再次定义就是重写
    • 注意事项

      1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
      2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。
      3. 私有方法不能被重写(父类私有成员子类是不能继承的)
  • this super

    • 父类空间优先于子类对象产生
    • this 代表当前对象
      • this :代表当前对象的引用(谁调用就代表谁)。
    • super 代表父类内存地址
      • super :代表父类的存储空间标识(可以理解为父亲的引用)。
    • 访问成员:this/super . 成员 或 成员方法()
    • 访问构造方法 this()/super()
  • 抽象类

    • 说明:
      • 对象的共性抽取
      • 抽象类没有结构体 也就是没有大括号 {}
      • 如果一个类包含抽象方法,那么该类必须是抽象类。
      • 继承抽象类的子类必须重写父类所有的抽象方法,否则该子类也是抽象类
    • 定义

      • 抽象方法 : 没有方法体的方法。
      • 抽象类:包含抽象方法的类。
    • 注意事项

      • 抽象类不能创建对象
      • 抽象类可以有构造方法
      • 抽象类可以有成员变量
      • 抽象类共性成员变量,可以在抽象父类中
      • 抽象类不一定有抽象方法
      • 抽象类被继承一定要实现所有抽象方法
  • 对象的内存解释

    • 对象在内存中的位置:对象由new关键字创建,如同数组,实体存在于堆内存中.任何事物均可以定义成类,创建对象,属于引用类型.而对象的引用变量是一个普通变量。存储的值是该对象堆内存中的地址.

2.扩展延伸知识

  • java引用类型

    • 数组,类,接口
  • 必须要记:方法栈,堆,方法区

    • 方法栈:所有方法都在里面(包括方法里面的变量)
    • 方法区:class文件都在里面
    • 推:对象,数组在里面(super 划分一块区域,是super )
  • 内存图

    • 父类先进,子类
    • 父类的变量,跟着子类进入堆内存
    • super表示子类中属于父类区域的内存地址
  • 子类构造方法的第一行一定是?

    • 隐式存在super();语句
    • 子类构造方法,必须调用父类构造方法(否则报错)
    • 注意:
      • 父类不存在无参构造函数,则需要手动调用父类构造函数

3.灵感代办

  • 能够写出类的继承格式
  • 能够说出继承的特点
  • 能够区分this和super的作用
  • 能够说出方法重写的概念
  • 能够说出方法重写的注意事项
  • 能够写出抽象类的格式
  • 能够写出抽象方法的格式
  • 能够完成员工类综合案例

4.复习内容

5.学习成果&问题


Ares个人进阶之路