继承

本文深入讲解Java中的继承机制,包括超类与派生类的概念,单一继承的特点,以及super关键字的使用方法。探讨了如何通过extends关键字实现代码复用,详细解析了构造派生类时构造超类的规则。

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

  • 作用:代码复用

  • 通过extends来实现继承
    class A{}

    class B extends A{}

  • 超类(父类):内部属性和行为是所有派生类所共有的。
    派生类(子类):派生类所特有的属性和行为

  • 派生类继承超类后,派生类具有:超类的+派生类的属性和行为

  • 一个超类可以具有多个派生类
    一个派生类只能有一个超类---------单一继承

  • 具有传递性(父传子,子传孙)

super()的用法:

  • super:指代当前对象的超类对象类似于this的用法
    super的用法:

    1. super.成员变量名------------访问超类的成员变量
    2. super.方法名()--------------调用超类的方法---------明天下午讲
    3. super()---------------------调用超类的构造方法
  • java规定:构造派生类之前必须先构造超类
    在派生类的构造方法中若没有调用超类的构造方法
    ------则默认 super() 调用超类的无参构造方法

    注意:若超类中没有无参构造(比如自己添加了有参构造,就不再提供默认的无参构造),派生类中必须手动调用,否则会报错,因为默认提供的super()是调用超类的无参构造,而超类中没有,所以会报错

    在派生类的构造方法中若调用了超类的构造方法
    ------则不再默认提供super()
    super()调用超类构造方法必须位于派生类构造方法的第一行

//超类有无参构造函数时,派生类会默认调用超类的无参构造
class Aoo{
	Aoo(){}//这个无参构造函数不写java默认提供,写了就不再提供
}
class Boo extends Aoo{
	Boo(){//无参构造,java默认提供
		super();//super()表示调用超类的无参构造函数,当超类有无参构造时,在派生类开头会自动调用,但不会显示。
	}
}
//当超类内部没有无参构造时(自定义了有参构造),派生类不会自动调用超类的构造函数,需要手动添加
class Coo{
int age;
	Coo(int age){
	this.age = age;}
}
class Doo extends Coo{
	Doo(){
		super(1);//在派生类构造函数内部开头引用超类的构造函数。若不写这一句会报错
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值