Java learn 接口与继承 (super object)

写在之前 :
相对于之前的Java 学习速度慢了许多 之前的内容不断累积 导致在学新东西的时候会用到之前的 由于忘记之后 就衔接不上
所以断了一天回顾之前的。

super 关键字的使用 及其作用:

这里的应用讲解就会提到之前的学习内容
也就是——子类在继承了父类之后 实例化一个对象, 其构造方法总会被调用
其父类的构造方法也会被调用(也就是两个构造方法)
并且是父类构造方法先调用
子类构造方法会默认调用父类的 无参的构造方法

当父类同时有无参构造方法和有参构造方法:
使用关键字super 显式调用父类带参的构造方法
以下是子类继承父类之后的带参构造方法。
子类

在这里插入图片描述
父类
在这里插入图片描述

super(); 这样的格式是调用 父类的无参构造方法—— public Hero()
super(name); 这样是调用 父类的有参构造方法——public Hero(String name)

最好的理解就是super括号里的。

super关键字 调用父类属性:
子 父类里都有同样的属性——int moveSpeed;
在这里插入图片描述
super.moveSpeed ——super的作用就是在子类代码中调用父类的属性 方法等等 一种越级使用。
同理的this 也有this(); 可以在另一个方法中调用子类自身的构造方法
this(name); 这种作用也是一样的
示例——this.moveSpeed
这里也就回顾了之前的this的应用 this

子类重写父类方法的情况:
子类重写了父类的方法,并且在此方法中通过super调用父类的方法;
在这里插入图片描述
这样的好处就是重写方法后改变其方法作用 仍然能够调用之前父类方法的作用。

如果在父类中故意不提供 无参构造方法 只写有参构造方法

作为子类,无论如何 都会调用父类的构造方法。
默认情况下,会调用父类的无参的构造方法。
但是,当父类没有无参构造方法的时候( 提供了有参构造方法,并且不显示提供无参构造方法),子类就会抛出异常,因为它尝试去调用父类的无参构造方法。
这个时候,必须通过super去调用父类声明的、存在的、有参的构造方法

object类:
Object类是所有类的父类——声明一个类的时候,默认是继承了Object
public class Hero extends Object 只是平时没写全

Object类提供一个toString方法,所以所有的类都有toString方法
toString()的意思是返回当前对象的字符串表达
通过 System.out.println 打印对象就是打印该对象的toString()返回值
但在码代码的时候可以对toSting();这个方法进行重写 以达到更为方便的用处。

finalize()
也是object中提供的一个方法
当一个对象没有任何引用指向的时候,它就满足垃圾回收的条件
当它被垃圾回收的时候,它的finalize() 方法就会被调用。
finalize() 不是开发人员主动调用的方法,而是由虚拟机JVM调用的。
在这里插入图片描述

equals()
也是object这个类中的。
equals() 用于判断两个对象的内容是否相同

假设,当两个英雄的hp相同的时候,我们就认为这两个英雄相同
在这里插入图片描述

==
这不是Object的方法,但是用于判断两个对象是否相同
更准确的讲,用于判断两个引用,是否指向了同一个对象
在这里插入图片描述
目前学习的拓展内容:
但是权当了解 毕竟属于Java 高级运用的范畴

1、hashCode()——方法返回一个对象的哈希值
2、Object还提供线程同步相关方法
wait()
notify()
notifyAll()
3、getClass()会返回一个对象的类对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值