美文网首页
接口和抽象类的区别

接口和抽象类的区别

作者: 简书不简单iiii | 来源:发表于2019-10-10 22:47 被阅读0次

    一。 接口和抽象类的区别

    接口中所有方法都是默认的public 但是抽象类中有不是抽象的方法

    接口中除了static、final变量,不能有其他变量,而抽象类中则不一定

    一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过extends关键字扩展多个接口。

    从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。

    二 对象相等和引用相等有什么区别

    前者是指内存中的对象是否相等  后者是指对象的引用地址是否相等

    三 hashCode()与equals()的相关规定

    如果两个对象相等,则hashcode一定也是相同的

    两个对象相等,对两个对象分别调用equals方法都返回true

    两个对象有相同的hashcode值,它们也不一定是相等的(为什么)

    equals 方法被覆盖过,则 hashCode 方法也必须被覆盖

    hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)

    四 Java序列化中如果有些字段不想进行序列化,怎么办

    对于不想进行序列化的变量,使用transient关键字修饰。

    transient关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被transient修饰的变量值不会被持久化和恢复。transient只能修饰变量,不能修饰类和方法。

    相关文章

      网友评论

          本文标题:接口和抽象类的区别

          本文链接:https://www.haomeiwen.com/subject/zxrzpctx.html