JAVA中继承、this关键字、以及super()

这篇博客详细介绍了Java中的继承概念,包括继承的概述、`extends`关键字的使用,以及不同包下继承的规则。同时,文章还讨论了`this`关键字的功能,如在构造方法和实例方法中调用本类的其他方法或属性。最后,文章讲解了`super()`关键字,用于调用父类的构造方法和继承的实例方法,并对比了`this`和`super`的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、继承(Inheritance)

1.概述

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
在这里插入图片描述

2.extends:扩展,延伸

Java中,要是想继承某个父类,可以用如下格式:

class 子类 extends 父类 {}

其中 父类 -> 子类 是特化(特殊化)

子类 -> 父类 是泛化(一般化)对于类和类之间的继承来说,extends 关键字之后只能跟一个 直接父类

如果定义类的时候时,未通过 extends 显式 指定其直接父类,则默认父类为 java.lang.Object
在这里插入图片描述

3.继承的两种说法

  • 子类和父类在同包的时,可以父类中继承公开的,受保护的,默认的成员(关注字段和方法)

    子类和父类在不同包时,可从父类中继承公开的,受保护的的成员。(关注字段和方法)

  • (内存划分,推荐说法)
    子类可以继承从父类中的所有成员,但受访问修饰符的影响。(字段和方法)


二、this 关键字

通过 ***this([参数列表])***形式调用本类中 其他构造方法

通过 this.实例变量名称形式调用 变量的值

this.show();
this.type = "元";
  1. 访问实例变量
  2. 调用实例方法
  3. 在构造方法中调用本类的其他方法。

this 可以理解为一个只想当前实例(对象)的引用。(可以将 this 理解为一个变量,其中存储了当前实例(对象)在堆内存储中的首地址)。


this 一般使用于:

  • 实例初始化器
    在这里插入图片描述
  • 构造方法
    在这里插入图片描述
  • 实例方法
    在这里插入图片描述
    (注:但不可在 **类方法(类初始化器)**中使用)
    在这里插入图片描述
    Error:‘com.kaifamiao.inherit.Shape.this’ cannot be referenced from a static context。

错误: ‘com.kaifamiao.inherit.Shape.this’ 不能从静态上下文中引用


三、super()

  • 通过 super([参数列表]) 形式调用父类构造方法。
  • 调用从父类继承的实例方法。
  • 在本类的构造方法中调用父类的构造方法。

super()在以下三个场景使用:

  • 实例初始化器
  • 构造方法
  • 实例方法

通过 **“super([参数列表])”**形式调用父类方法。

通过 “super.实例变量名” 为从父类继承的实例变量赋值

通过 **“super.实例变量名([参数列表])”**形式调用从父类继承的实例方法。

super()this 的区别

superthis 不同,super 不可以 理解为一个 引用变量 ,不可以单独使用。他用来访问从父类继承的成员,调用父类的构造方法。

含有 public static void main (String[]) 的方法类被称作 启动类。

直接运行启动类的 main方法 会导致该类被初始化。而且当子类被初始化后,其父类也会被初始化。

被 **final ** 修饰是的变量是 最终变量 ,只能初始化一次,之后不可以被赋值。
在这里插入图片描述
final 修饰的类为最终类,没有子类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值