super应用

this、super基础

  1. this和super一样,都是对象内部的引用变量,只能出现在对象内部;
  2. this指向当前对象自己,super指向当前对象的父类型特征,super是this的一部分;
  3. this()和super()都只能出现在构造方法的第一行,故this()和super()方法不能共存,当一个类的构造方法第一行中没有this(),也没有super(),系统默认有super()方法;
  4. this()是构造方法中调用本类其他的构造方法,super()是当前对象构造方法中去调用自己父类的构造方法。

场景和优势:

**共享基础功能:**通过在父类中定义通用的属性和行为,可以确保子类在继承后能够共享这些基础功能,避免重复编写代码。
特化子类功能:子类可以在其构造方法中调用 super() 来初始化父类的属性,然后再添加自己特有的功能或属性。这种方式支持在子类中添加特定于子类的逻辑,同时保持对父类共享功能的访问。

独立实例化:

每个子类对象在实例化时都会单独初始化父类的属性。
例如,创建 Dog 对象时会调用 super(name) 来初始化 Animal 类的 name 属性,而创建 Cat 对象时也会通过 super(name) 来初始化同一个 Animal 类的 name 属性。这样,每个子类对象拥有自己的 name 属性副本,并且不会相互影响。

设计模式中使用

模板方法模式(Template Method Pattern):

模板方法模式定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。在Java中,通常使用抽象类来实现模板方法模式,子类通过继承并覆写抽象类中的方法来实现具体的算法步骤。
在抽象类的模板方法中,可以使用 super 关键字来调用父类已经实现的方法,从而保留通用的算法结构。

装饰者模式(Decorator Pattern):

装饰者模式允许向现有对象添加新功能,同时又不改变其结构。在Java中,通常通过继承或实现相同的接口来实现装饰者。
在装饰者模式中,子类可以通过 super 关键字调用父类的方法,然后在其基础上添加新的功能或修改行为。

工厂方法模式(Factory Method Pattern):

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。在Java中,通常通过继承和多态来实现工厂方法模式。
在具体的工厂类中,可以使用 super 关键字来调用父类的工厂方法,以便生成父类定义的产品对象。

适配器模式(Adapter Pattern):

适配器模式将一个类的接口转换成客户希望的另一个接口。在Java中,适配器模式通常使用类继承或接口实现来实现适配器。
在适配器类中,可以通过 super 关键字来调用父类的方法,以便实现接口方法或者对适配目标进行调用转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值