Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • JavaSE

    • Java简介
    • 基础语法
    • 数据类型
    • 变量
    • 运算符
    • 输入输出
    • 流程控制
    • 循环语句
    • idea中的辅助键
    • 数组
    • 方法
    • 面向对象基础
    • 字符串
    • ArrayList集合
    • 继承
      • 继承的好处与弊端
      • 继承中变量的访问特点
      • super
      • 继承中构造方法的访问特点
      • 继承中成员方法的访问特点
      • 方法重写
        • 概述
        • 校验是否是方法重写
        • 注意事项
      • 继承注意事项
    • 修饰符
    • 多态
    • 抽象
    • 接口
    • 类名作为形参和返回值
    • 内部类
    • Api
    • 异常
    • 集合
    • 泛型
    • Set集合和比较器
    • 树
    • 哈希
    • 可变参数
    • 创建不可变的集合
    • Stream流
    • 方法引用
    • File
    • 多线程
    • 多线程高级
    • 网络编程
    • 类加载器
    • 反射
    • XML
    • 枚举
    • 注解
    • 单元测试
    • 日志
    • HTTP协议
    • Servlet
    • 请求对象
    • 响应对象
    • Cookie
    • Session
    • JSP
    • Listener
    • JDBC
  • JavaEE

  • Linux

  • MySQL

  • NoSQL

  • Python

  • Python模块

  • 机器学习

  • 设计模式

  • 传智健康

  • 畅购商城

  • 博客项目

  • JVM

  • JUC

  • Golang

  • Kubernetes

  • 硅谷课堂

  • C

  • 源码

  • 神领物流

  • RocketMQ

  • 短链平台

  • 后端
  • JavaSE
Iekr
2021-05-09
目录

继承

# 继承

继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法

格式:pubilc class 子类名 extends 父类名 {}

如:

public class Zi extends Fu{
    
}
1
2
3

Fu: 是父类,又称为基类,超类

Zi: 是子类,又称为派生类

# 继承的好处与弊端

好处:

提高了代码的复用性 (多个类相同的成员或者方法可以放到同一个类中)

提高了代码的维护性(如果方法的代码需要修改,修改一处即可)

弊端:

继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类也不得不跟着变化,削弱了子类的独立性

什么时候使用继承?

继承体现的关系:is a

假设法:我有两个类 A 和 B,如果他们满足 A 是 B 的一种,或者 B 是 A 的一种,就说明他们存在继承关系,这个时候就可以考虑使用继承,否则不能滥用继承,因为不确定父类什么时候改变,而子类是否需要这些继承的属性或方法。

相对于父类必须是子类的真子集

# 继承中变量的访问特点

在子类方法中访问一个变量的访问顺序是

  1. 子类局部范围找
  2. 子类成员范围找
  3. 父类成员范围找
  4. 如果都没有则报错(不考虑父类的父类)

# super

super 关键字用法与 this 关键字的用法相似

this: 代表本类对象的引用

super: 代表父类存储空间的标识(也可以理解为父类对象引用)

# 继承中构造方法的访问特点

子类中所有的构造方法默认都会访问父类中无参的构造方法

因为子类会继承父类中的数据,可能还会使用父类的数据。所以在子类初始化前,一定要先完成父类数据的初始化

每一个子类构造方法的第一条语句默认都是:super (),如果父类中并没有无参构造方法则报错

super () 调用的是父类的构造方法

如果父类中没有无参构造方法

只有带参构造方法则通过使用 super 关键字去调用父类中的代词构造方法

建议在父类中提供一个无参构造方法

# 继承中成员方法的访问特点

通过子类对象访问一个方法顺序

  1. 子类成员范围找
  2. 父类成员范围找
  3. 如果都没有则报错(不考虑父类的父类 j)

# 方法重写

# 概述

子类中出现了和父类一模一样的方法声明

并在子类重写方法可以在方法中使用 super 关键字调用父类的方法

# 校验是否是方法重写

在重写构造方法上方加上 @ovrride 如果报错则此子类构造方法不是重写

# 注意事项

  1. 父类中的私有方法是不允许重写的

  2. 声明方法父类与子类必须相同 如不加 public 关键字 系统默认也是有声明关键字,但不用 public 权限高

    (public> 默认 > private)

# 继承注意事项

  1. 一个子类不能继承多个父类 只有继承一个父类
  2. 可以使用嵌套子类继承父类,父类继承父类的父类 (多层继承)
编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
ArrayList集合
修饰符

← ArrayList集合 修饰符→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式