接口与抽象类区别

抽象类 Abstract class

抽象类是用abstract来修饰的,可以把抽象类当做是模板来使用,抽象类不能创建实例化对象,只能作为基类被继承,抽象类中的方法可以不是抽象的,但是抽象方法必须在抽象类中,子类继承抽象类后需要对抽象的方法重写其具体实现;

抽象类的几个特性

被继承性:抽象类作为基类主要是用来被继承的,子类需要重写抽象类中抽象方法的实现,因此修饰抽象方法必须是public、protected

抽象性:抽象类作为基类不能实例化,需要子类重写其抽象方法实现,向上转型

注:子类必须实现抽象类中所有的抽象方法,如果有抽象方法没有实现,此类必须是抽象类,子类只能继承一个抽象类;

接口

接口是抽象方法的集合,是特殊的一种抽象类,接口一般使用interface来修饰,接口中的抽象方法默认是使用public abstrct来修饰,接口中变量默认使用public static final来修饰;

接口与抽象类的区别

1、接口与抽象类都不能实例化,接口定义使用修饰词interface 抽象类使用abstract

2、接口中所有的方法都是public abstrct修饰,不能有非抽象方法,而抽象类中可以有非抽象类的方法

3、接口是implement来实现,一个子类可以实现多个接口,但是只能extend继承一个抽象类,但是子类必须实现所有抽象方法;

4、抽象类可以有自己的成员变量,成员变量是可以在子类中重新定义或者重新的赋值,但是接口中定义的变量必须是public static final来修饰,必须给初始值,而且初始值不能修改;

5、抽象类中可以有静态方法,而接口中不能有静态方法;

扫描二维码关注公众号,回复: 9191602 查看本文章

接口与抽象类的应用

1、接口可以用来作为各个系统间相互传输的协议格式,定义好入参,结果集,具体服务在子类中实现;
2、抽象类是一个模板,将所有子类都需要处理的方法抽取出来处理,而如果有具体的业务分歧的话就在抽象方法中提现;
3、如果接口中增加抽象方法,所有的子类都需要实现此方法,如果所有方法的处理方式一致,可以使用抽象类,在抽象类中添加非抽象方法,所有子类都可使用此方法,而不用复写此方法;

发布了15 篇原创文章 · 获赞 7 · 访问量 2859

猜你喜欢

转载自blog.csdn.net/xiaocaodeshengri/article/details/100690307