java面向对象(继承)部分知识点

 隐藏

 1.子类中有和父类同名的变量,就会发生隐藏

 2.子类变量可以隐藏父类变量,和static无关(4种情况)

   (1)子类变量被static修饰,父类没有被static修饰

   (2)子类变量被static修饰,父类被static修饰

   (3)子类变量没有被static修饰,父类没有被static修饰

   (4)子类变量没有被static修饰,父类被static修饰

 3.子类中有父类同名同返回值同参数列表的static方法,子类的方法会隐藏父类的方法。

 4.方法的隐藏只能是子类的static方法隐藏父类的static方法。

super关键字

1.创建子类对象时需要先创建父类对象,默认构造方法第一行调用父类的无参构造创建,调用代码可以省略

2.若果没有无参构造,则需要在每一个构造方法的第一行通过super关键字显示调用父类的构造方法

3.在Java中,子类的每一个构造方法都需要显式地使用super关键字调用父类的构造方法。这是因为子类继承了父类的属 性和方法,如果没有显式地调用父类的构造方法,则无法正确地初始化子类对象的属性。

4.当子类没有显式地调用父类的构造方法时,编译器会自动插入一个无参的父类构造方法,但是这个自动生成的构造方 法只会简单地将父类中所有属性都设置为默认值,而不会执行其他操作。因此,如果子类中有需要初始化的属性,就 需要显式地调用父类的有参构造方法来确保子类对象被正确地初始化。

5.需要注意的是,如果子类中定义了与父类中同名的属性,那么子类中的同名属性会覆盖父类中的属性。此时,在子类 的构造方法中,可以使用super关键字来访问父类中的属性,或者直接使用子类中的属性。

6.super表示父类对象,super([参数列表])表示调用父类的构造方法(必须放在第一行)

7.子类中想要使用父类的可见成员(非private修饰)可以通过super.成员 来调用和this的使用类似,但所表示的对象不 同。

8.super关键字只能出现在子类的实例初始化,实例方法,构造方法中。

Object类

java.lang.Object类是所有类的父类,Object类的所有成员(都有public和private修饰)在所有类中都有。

equals方法:boolean equals(Object)

==和equal的区别

  • ==既可以判断基本数据类型又可以判断引用数据类型,如果判断的是基本数据类型,判断值是否相等;如果判断的是引用数据类型,判断地址是否相等(即判定是否是同一个对象)

  • equals:是Object类的方法,只能判断判断引用数据类型;默认判断的是地址是否相等,子类往往重写该方法,用于判断内容是否相等。

equals重写格式要求

  • 对null返回false

  • 自反性:x.equals((x) 返回true

  • 对称性:x.equals(y)的值 和 y.equals(x)的值一样

  • 传递性: x.equals(y) 为 true, y.equals(z) 为 true, 此时 x.equals(z) 为 true

  • 一致性: x.equals(y) 多次调用结果一致

向下转型和向上转型(例如有Object类和Student类)

  • 向上转型:Student -->Object Object o =Student;

  • 向下转型:Object -->Student Student stu =(Student)obj;

hashCode方法:int hashCode

返回该对象的哈希值

哈希值是根据地址号来的,不能将哈希值等价与地址

两个引用,如果指向的是同一个对象,则哈希值肯定是一样的

两个对象equals为true,hashCode值一样;hashCode值一样,equals值不一定为true;

hashCode方法重写的注意事项

  • 重写hashCode()方法必须同时重写equals()方法;

  • 如果两个对象相等(即equals()方法返回true),那么它们的哈希码必须相同;

  • 如果两个对象的哈希码不同,那么它们一定不相等。

toString方法:String toString

默认返回:全类名+@+哈希值的十六进制 子类往往重写toString方法,用于返回对象的属性信息
当直接输出一个对象时,同String方法会被默认的调用

clone方法:Object clone()

浅拷贝[实现Clone'able接口]

getClass方法:Class getClass()

获取类结构信息,返回Class对象

finallize方法:void finallize()

在垃圾收集器将对象从内存中清除出去之前作必要的清理工作(JDK 9开始弃用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值