穿越Java - 语法基础篇 第三章 面向对象介绍 | 第12节 继承

5 篇文章 0 订阅
1 篇文章 0 订阅

开发环境

基于:JDK1.8

官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装

更多干货

请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章

格式

 class 子类  extends 父类{
       }

作用

  1. 提高代码的复用性

  2. 分析出共同点 然后将相同的逻辑定义在一个类中(父类)

  3. 提高代码的可维护性

  4. 通过继承, 父类与子类之间产生了关系,这个关系是多态的前提。

特点

  • 1.Java中只支持单继承
    一个类中最多只有一个父类

  • 2.多个类可以继承一个父类

  • 3.Java支持多层继承(比如父类为 class p{} 子类class A extends p 孙子类class B extends A)

  • 4.继承只能继承父类中的非私有的成员. 默认访问的是子类中的成员变量 (即私有的成员变量、私有的成员方法不能被继承)

  • 5.子类不能继承构造方法 即 构造方法不能被继承
    子类必须通过 super 关键字来调用父类的构造方法。一旦发生了继承,Java中子类中都 隐调 父类的公共 的无参 构造方法super()。
    如果父类中不存在 公共无参构造方法 默认继承会报错。 且此时子类必须明确 在构造方法中使用 super(xxx)来调用父类特定的构造方法。

  • 6.不要为了继承而继承
    当问题中出现 is a 的关系时,考虑用继承

继承中构造方法的细节

  • 1.子类中的所有构造方法都默认会访问父类的公共无参的构造方法。

  • 2.其实子类中所有的构造方法的第一条指令 ,默认都是super()

  • 3.如果父类中不存在 公共无参构造方法 默认继承会报错。 且此时子类必须明确 在构造方法中使用 super(xxx)来调用父类特定的构造方法。且必须是第一条指令。

  • 4.当配合this()使用时 是特例。但是不管是this还是 super必须是构造方法中的第一条指令。

继承中成员方法的细节

  • 1.当子类中不存在某些成员方法时,会自动从父类中获取。

  • 2.如果子类中存在与父类非私有的方法名和参数列表相同的方法 要求:
    返回值值必须一样。 权限修饰符要求子类不能比父类更小。(这就是方法重写)

方法重写的应用点

  • 1.子类要实现父类的某些功能

  • 2.子类要扩展父类的某些功能,配合 super.父类方法名()来扩展

  • 3.当父类中有静态方法时,如果子类想重写,要求子类的方法签名和父类一致。

继承中成员变量的关系

  • 1.当子类中的成员变量和父类中的非私有的成员变量同名时,默认访问的是 子类中的成员变量

  • 2.如果确实要访问 父类的,则需要配合 super 关键字。即当子类的成员变量和父类继承下来的成员变量重名时,使用super 区分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值