Java继承

本文深入解析Java中的继承机制,包括单一继承的特点、继承的好处与弊端、重写规则、构造方法的调用顺序以及多态性。同时探讨了super()和this()的使用,为何Java不支持多继承以及接口和抽象类的多重继承特性。

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

继承(extends):Java是一个单一继承的跨平台语言,一个类在现有类的基础上,对父类进行扩充,也就是子类继承父类的特征和行为,一个类只有一个直接父类,如果没有声明父类,则默认的父类为Object类。它们的关系是所属关系,也就是说当两个类之间存在这种关系的时候,才是具备了继承的关系。怎么看这种关系呢?假设继承之后,父类的功能都可以被子类所具备,继承就成立,如果不能,就不可以继承。
一个简单的继承
在这里插入图片描述
继承的好处:提高了代码的复用性;让类与类之间产生了关系,提供了另一个特征多态的前提(某一种事物有不同的具体特征和体现)。
继承的弊端:打破了封装性,对于某些类和方法以及属性不够严谨。
因此我们可以在修饰符后加final,表示该类不能被继承(扩展),加上final的实例方法,不能被子类重写。或者是用private修饰符修饰的也不能被重写。
重写的时候要注意,子类方法的权限必须大于等于父类方法的权限;静态的只能覆盖静态的,或者被静态覆盖,参数列表和返回类型都必须和被重写方法的相同;
方法的重写
在这里插入图片描述
注:必须在继承的情况下重写父类的方法
在这里插入图片描述
关于继承的一些知识要点

  1. 构造方法不能被继承,private修饰的也不能被继承
  2. public方法和protected方法可以在其它类下调用,但前提是该类必须继承父类
  3. 方法和属性可以被继承
    注:子父类中通常是不会出现同名成员变量的,因为只要父类中定义了,子类就不需要再次声明,直接继承就可以用了。
    继承父类的成员变量、方法
    在这里插入图片描述
    在这里插入图片描述
  4. 子类的构造方法隐含的调用父类的默认构造方法,子类对象在实例化之前必须首先调用父类中的构造方法之后再调用自身的构造方法。
  5. super() 和 this() 不可以同时出现的构造函数中
  6. 接口与接口之间可以多继承
  7. 抽象类可以继承,帮助我们控制子类,抽象类中可以定义非抽象方法,子类可以直接继承使用
  8. 不同类可以继承同一个类
    在这里插入图片描述
    在这里插入图片描述
  9. 一个类里面只能有一个直接父类,当一个类没有直接显示继承了父类的时候,它默认的
    直接父类是Object类,如果直接显示继承了其它类,默认的直接父类Object就会取消;java.lang.Object是所有类的父类,Object若不是直接父类,那么就是间接父类。

问题知识点:
A、super()和this()为什么要定义在第一行呢?
因为super() 或者this() 都是调用构造函数,构造函数用于初始化,所以初始化的动作
要先完成。

B、为什么不能多继承呢?
因为当一个类继承多个类的时候,有可能这些多个类中有相同的方法,而且当我们需要重
写一个方法的时候,就会产生冲突,压根就不知道重写的是哪个类里面的方法,更何况系
统根本不支持这种写法,会直接报错。

C、它为什么就可以多重继承呢?
因为我们知道继承的关系是所属关系,一个类里面的功能可能是其它类所共有的,并且
可以是多个类所共有的,所以就可以一层一层的继承下来,也就是多重继承,子类继承父
类的,子类的子类继承子类的,由此而来,这种关系是延伸下来的,最重要的是,Object
是每个类的超类,可以实现树形结构。

D、为什么子类可以对父类的方法进行重写?
虽然说是继承,但是子类也有它自己的特性,它可以有自己的属性和方法,它主要是以父
类为基础,当父类的方法不适用于子类时,子类可以对它进行覆盖(重写),一般重写过
的方法,用‘@Override’注明;还有一点好处就是子类重写过的方法并不是把父类原来的方
法给占有了,我们还是可以调用被重写的方法的,只是需要通过super.方法名(实参)来获
取。

继承条件创建对象
1、当构造一个对象的时候,系统先构造父类对象,再构造子类对象
2、构造一个对象的顺序(构造父类对象的时候也是如此)
(1) 递归地构造父类对象
(2) 顺序地调用本类成员属性赋初值语句
(3) 本类的构造方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值