2021-07-10-继承(extends)与方法重写

本文详细介绍了Java中的继承概念,包括单继承、成员变量访问特点、构造方法的访问以及方法重写。强调了方法重写在继承体系中的作用,以及其注意事项。同时,探讨了构造方法在子类初始化过程中的重要性,以及如何处理父类无空参构造方法的情况。
摘要由CSDN通过智能技术生成

layout: post
#标题配置
title: Java继承与方法重写
#时间配置
date: 2021-07-10 12:00:00 +0800
#目录配置
categories: Java
#标签配置
tag: 学习笔记

  • content
    {:toc}

一.继承(extends)

让类与类之间产生关系(子父类关系),子类可以直接使用父类中非私有的成员

1.继承的格式:public class 子类名 extends 父类名()

​ 范例:public class Zi extends Fu()

​ Fu:是父类,也被称为基类、超类

​ Zi:是子类,也被称为派生类

2.继承的好处和弊端:

好处:提高了代码的(复用性,维护性),是多态的前提

弊端:降低了代码灵活性,增强了代码的耦合性

3.继承的特点:

Java只支持单继承,不支持多继承,但支持多层继承

不支持多继承是为了避免代码冲突

4.继承的成员变量访问特点:

在子类方法中访问一个变量

1.子类局部范围找

2.子类成员范围找

3.父类成员范围找

​ 注意:如果子父类中,出现了重名的成员变量,通过就近原则,会优先使用子类

如果一定要使用父类的,可以通过super关键字进行区分

super与this:

​ super关键字的用法和this关键字用法相似

​ this:代表本类对象的引用

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

关键字 访问成员变量 访问成员方法 访问构造方法

this this.成员变量 this.成员方法(…) this(…)

访问本类成员变量 访问本类成员方法 访问本类构造方法

super super.成员变量 super.成员方法(…) super(…)

访问父类成员变量 访问父类成员方法 访问父类构造方法

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

1.子类成员范围找

2.父类成员范围找

二.方法重写

方法重写概述:在继承体系中,子类出现了和父类中一模一样的方法声明

方法重写的应用场景:1.当子类需要父类的功能,而功能主体子类有自己特有内容,可以重写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容

**方法重写:**在继承体系中,子类出现了和父类一模一样的方法声明(方法名,参数列表,返回值类型)

**方法重载:**在同一个类中,方法名相同,参数列表不同,与返回值无关

1.方法重写注意事项

1.父类中私有方法不能被重写

2.父类静态方法,子类必须通过静态方法进行重写,父类非静态方法,子类也必须通过非静态方法进行重写。

@Override //检查当前的方法是否是一个正确的重写方法

注意:静态方法不能被重写!如果子类中,也存在一个方法声明一模一样的方法,可以理解为,子类将父类中同名的方法,隐藏了起来,并非是方法重写

子类重写父类方法时,访问权限必须大于等于父类

pulicprotecteddefaultprivate
同一类中
同一包中
不同包的子类
不同包中的无关类

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

一.

1.子类在初始化之前,一定要先完成父类的初始化

2.子类在初始化之前,一定要先访问到父类的构造方法,完成父类数据的初始化

3.系统在每一个构造方法中,默认隐藏的一句代码(位于构造方法第一句):super();

注意:如果我们编写的类,没有手动指定父类,系统也会自动继承Object类(Java继承体系中的最顶层父类)

二.如果父类中没有空参构造方法,只有带参构造方法,子类会提示错误

解决方法

1.子类通过super,手动调用父类的带参的构造方法

2.子类通过this去调用本类的其他构造方法,本类其他构造方法再通过super去手动调用父类的带参的构造方法

注意:this(…) super(…)必须放在构造方法的第一行有效语句,并且二者不能共存

总结:1.子类中所有的构造方法,默认都会通过super()访问父类中无参的构造方法

​ 2.每一个子类构造方法的第一条语句默认都是:super();

​ 3.this(…) super(…)必须放在构造方法的第一行有效语句,并且二者不能共存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾光1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值