java 重载序列化接口,Java_抽象类与接口、重载与重写、访问修饰符、关键字、序列化...

本文详细解读了Java中的抽象类与接口的区别,包括构造方法、成员变量、方法特性等,并介绍了final、static、super、this的关键用法。此外,还对比了重载和重写,以及访问修饰符的应用。特别关注序列化在特定场景中的运用。
摘要由CSDN通过智能技术生成

1. 抽象类与接口:

抽象类:

含有abstract修饰符的类即为抽象类,抽象类不能创建实例;有抽象方法的类必须定义为抽象类,类中的方法不必是抽象方法;抽象类中定义的抽象方法必需在子类中实现;如果子类没有全部实现父类的抽象方法,那么子类也定义为抽象类。

接口:

接口中所有方法都必须是抽象的;方法默认是public abstract类型;成员变量默认是public static final。

区别:

抽象类可以定义构造方法,接口不能;

抽象类可以定义普通成员变量、方法,接口不能;

抽象类中的抽象方法的访问类型可以是:public、protected、默认类型,接口只能是public类型。

抽象类中可以定义静态方法,接口不能;

关系:

Java中通过继承或实现接口来实现多态,我们一个类可以实现多个接口,但只能继承一个类或抽象类;一个接口可以继承多个接口;一个类在继承时还可以实现多个接口。

2.Java中的final、static、super、this关键字:

Final关键字修饰类,表不能被继承;修饰方法,表不能被重写;修饰变量表常量,其中修饰基本数据类型变量时,表其值不可改;修饰引用数据类型变量时,表引用空间地址值不可改,但其内容可以改变。我们知道:基本类型的包装类、String都使用了final修饰,所以该类无法继承,比如String类,我们在使用时,便能确保我们的引用一定是String对象。

Static关键字修饰变量表静态变量,可以同时被final修饰,表静态常量;需要注意静态变量可以直接通过类名引用,而实例变量则需要new出对象来调用;static修饰方法表静态方法,注意静态方法内部只能调用静态方法,原因同上。

super关键字用于子类调用父类的成员属性、成员方法和构造方法;当子类的成员变量覆盖了父类的成员变量或重写了父类方法,就可以用super.父类变量或super.父类方法名;来实现调用父类的成员属性、成员方法;当我们写子类构造方法时,会有一个super();这就是调用了父类的无参构造。

this关键字代表当前对象,简单来说:this就是所在方法所属对象的引用,就是哪个对象调用了this所在方法,this就代表哪个对象。

3.重载与重写的区别:

共同点:方法名都必须相同

不同点:重写必须发生在子父类之间,重载可以不在子父类之间。

重写:参数列表完全相同(个数、类型、顺序);子类的返回值范围不能大过父类的返回值;

重载:发生在同一个类或子父类之间,而参数列表至少要满足个数不同、类型不同、顺序不同中的一个条件。

4.访问修饰符:

访问修饰符用于修饰类、成员属性、成员方法、构造方法;目的是限制访问

Public:在此项目中的任何位置都可以被访问

Protected :表示只能被同包的其他类访问,如果在包外则只能被其子类访问

默认:表示只能被同包下的类访问

Private:表私有,该成员只能被本类的其他成员访问

5.Java的序列化

序列化是把Java对象保存到储存介质中;而反序列化是把储存介质中的数据转化为Java对象;进行序列化必须实现Serializable接口。那什么时候需要用到序列化呢,如:使用Hibernate二级缓存或其他缓存服务器,必须实现序列化接口;使用Dubbo远程调用服务时,实体类必须实现系列化接口。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值