Java - 继承与抽象类

Java - 继承与抽象类

  1. 继承:简化了有重复内容类的书写。

  2. 定义一个实体类

在这里插入图片描述

  1. 没有 static 的方法是成员方法。

  2. 继承体系内存图

在这里插入图片描述

  1. 继承-书写代码

    • 向上抽取:把那些类的共有部分抽取出来
    • 向下实现:写代码时先定义父类再定义子类
  2. 在这里插入图片描述

  3. 一个Java 文件中可以定义多个类,但最多只能有一个 public 类。

  4. .class 文件对应某一个类而不是一个java文件。

  5. 继承-运行过程

    • 创建子类对象的时候,系统会先默认调用父类的无参构造方法,加载父类的内容,但并未创建父类的对象。
    • 子类构造方法第一行默认会有一个super( ) 方法,用于实例化父类。
  6. 继承中的方法重写

    • 当父类的方法中的内容不够好时,可以在子类中对其重写。

    • 注解的使用- 写在重写方法上方,用于避免自己错写成了一个新的方法。

    在这里插入图片描述

    注意:1. 注解是不会检查返回值类型的,修改了返回值类型会报错是因为方法同名,调用时那就不知道是调用哪个方法了。

    ​ 2. 重写的时候如果改了方法的使用范围,就是public 那个关键字,只能改成比原来范围更大的。而且如果父类的方法是private 的,那么子类是不能实现重写的,会成为一个子类自己的方法。

  7. 在重写的方法中也是可以调用原来要重写的父类的那个方法的。

  8. this 关键字

    • this() 代表调用类的构造方法,不要在构造方法里用,会死循环。

    • 在这里插入图片描述

    • 延迟加载,可以有效节约内存空间。再看一下代码

  9. super 关键字

    • super 可以直接调用父类的成员变量,成员方法,构造方法。
    • 子类中其实暗含着继承自父类的成员变量,所以子类的满参构造方法要包括父类的成员变量才算满参。
    • 在堆内存中,子类对象中会有一个super 变量用于存储父类的内容。
  10. 继承注意事项

    • 一个类只能继承于一个类
    • 一个父类可以有多个子类
    • 允许层层往下继承
    • 通俗理解:一个爸爸可以有多个儿子,一个儿子只能有一个爸爸,允许不断地传宗接代。
  11. 抽象类

    • 在这里插入图片描述

    • 抽象的子类可以直接继承抽象方法,且可以不重写。

    • 抽象类不能实例化一个对象,因为它的内容本身就是不确定的,没法实例化。

    • 抽象类只能通过子类创建对象。

    • 抽象类可以有构造器,供子类初始化父类成员。

  12. 设计模式 - 模板

在这里插入图片描述

```
模板设计模式:
// 父类定义成抽象类,子类确定的内容,在父类中定义成非抽象方法。
// 子类不确定的内容,在父类重定义成抽象方法,将来交给子类自己定义该功能。
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值