java核心卷学习–接口,抽象类,Object类
1.抽象类:必须含有抽象方法,关键字为abstract,使的父类更加有通用性,拓展抽象类只有两种方式,一种是实现抽象方法,另一种就是子类同样也标记为抽象类了,
2.接口:可以理解为接口中方法全部为抽象方法而且不能拥有具体方法,抽象类可以有这是他们直接很大的区别,类只能单继承,但是接口却能继承多个,其中**接口和抽象类被实例化后可以直接调用自己的抽象方法,用法类似多态。**继承接口的关键字为implements
3.java用于控制可见性的4个访问休息符
(1)仅对本类可见 – private
(2)对所有类可见 – public
(3)对本包和所有子类可见 – protected
(4)对本包可见 – 默认
4.Object类:Object类是所有类的父类,里面有几个比较有趣的方法
1.equals
方法在非空对象引用上实现等价关系:
-
自反性 :对于任何非空的参考值
x
,x.equals(x)
应该返回true
。 -
它是对称的 :对于任何非空引用值
x
和y
,x.equals(y)
应该返回true
当且仅当y.equals(x)
回报true
。 -
传递性 :对于任何非空引用值
x
,y
和z
,如果x.equals(y)
回报true
个y.equals(z)
回报true
,然后x.equals(z)
应该返回true
。 -
它是一致的 :对于任何非空引用值
x
和y
,多次调用x.equals(y)
始终返回true
或始终返回false
,没有设置中使用的信息equals
比较上的对象被修改。 -
对于任何非空的参考值
x
,x.equals(null)
应该返回false
。2.hashCode 返回对象的哈希码值。
支持这种方法是为了散列表,如
HashMap
提供的那样 。hashCode
的特点是:- 只要在执行Java应用程序时多次在同一个对象上调用该方法,
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 - 如果根据
equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 不要求如果两个对象根据
equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
public String toString()
返回对象的字符串表示形式。
一般来说,
toString
方法返回这个对象的字符串。该
toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符的类的名称的字符串
@` ”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
- 只要在执行Java应用程序时多次在同一个对象上调用该方法,