继承和重载

本文详细介绍了Java中的继承概念,包括继承的格式、好处与短板、应用场景及特点。强调了Java单继承和多层继承的特性,以及成员变量的访问规则。此外,还探讨了方法重写的基本原理、应用场景、注意事项以及与方法重载的区别。同时,提到了构造方法的访问特点,强调了子类初始化与父类初始化的关系。最后,总结了构造方法中this和super关键字的使用规则。
摘要由CSDN通过智能技术生成

1、继承概述:根据多个类中的共性内容,向上抽取而来;

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

(1)继承的格式:

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

例子:public class Zi extends Fu{};Fu是父类,也称基类,超类; Zi子类,也称派生类;

(2)继承的好处和短板

好处:提高代码的复用性、维护性;类与类之间产生关系,是多态的前提;

短板:继承是侵入性,

降低代码的灵活性;继承关系,导致子类必须拥有父类非私有属性和方法,让子类自由的设计界多了约束

增强代码的耦合性:代码与代码之间存在关联都可以将其称为耦合;

(3)应用场景

当类与类之间存在相同的内容,且产生了isa的关系,可以使用继承,来优化代码;

(4)继承的特点:

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

多层继承:子类A继承父类B,父类B可以继承父类C;

(5)继承的成员变量访问特点

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

子类局部范围找;子类成员范围找;父类成员范围找;

注意:如果子父类中,出现了重名的成员变量,通过就近原则,会优先使用子类的,如果一定要使用父类的,可以通过super关键字来进行区分;

(6)、super和this关键字的用法相似:

this代表本类对象引用,super代表父类存储空间的表示(父类对象的引用);

关键字

访问成员变量

访问成员方法

访问构造方法

this

this.成员变量,访问本类成员变量

this.成员方法(),访问本类成员方法

this(…)访问本类构造方法

super

super.成员变量,访问父类成员变量

super.成员方法(),访问父类成员方法

super(..)访问父类构造方法

(7)继承中成员方法的访问特点

 通过子类对象访问一个方法:子类成员范围找;父类成员范围找;

2、方法重写

在继承体系中,子类出现了和父类中一模一样的方法声明;

(1)应用场景:

当子类需要父类的功能,而功能主体子类有自己特有内容,可以重写父类中的方法,这样,沿袭父类功能,有定义子类特有的内容;

(2)方法重写和重载

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

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

(3)方法重写注意事项

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

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

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

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

(4)权限修饰符

修饰符

同一个类中

同一个包中子类无关类

不同包的子类

不同包的无关类

private

默认

protected

public

3、构造方法访问特点

(1)子类中所有的构造方法默认都会访问父类中无参数构造方法;子类在初始化时,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类数据;子类初始化之前,一定要先完成父类初始化;

(2)系统在每个构造方法中,默认隐藏的依据代码super();构造方法的第一条语句默认都是super();

(3)如果编写的类,没有手动指定父类,系统也会自动继承object(Java继承体系中的最顶层父类)编写的每个类都默认继承object类;

(4)父类中没有无参构造,只有有参构造;

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

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

总结:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值