扫码关注官方订阅号
光阴似箭催人老,日月如移越少年。
我认为你先得了解接口和抽象类的区别:
接口只能定义方法,不能定义方法里面的具体实现(Java8之前);
抽象类是除了被实例化,和普通类一模一样的类;
因此接口更像是一种约定,而抽象类的作用更偏向是放通用的代码,防止冗余。
接口是一种规范,是在设计代码时设计出其主体功能,就像对于集合来说,不论是ArrayList,还是LinkedList都有其其通用的功能,添加,删除,修改等,这些在设计接口的时候都设计好了。关于抽象类,就是把能够通用的功能做实现,不能通用的功能继续抽象,到其实体自类中根据实体类的特征去做实现,就比如有一个接口I,它里面有两个抽象方法add(),put(),其有两个实体类A,B继承了该接口,做了实现,然后你发现在实体类中A,B代码中add()是一样的,但put()是不一样的,考虑代码设计不要冗余和做重复的工作,那你是不是应该让add()代码能够只写一遍,但是对于put()方法还必须分开写,这时候你还不能在接口中写,是不是需要抽象类了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我认为你先得了解接口和抽象类的区别:
接口只能定义方法,不能定义方法里面的具体实现(Java8之前);
抽象类是除了被实例化,和普通类一模一样的类;
因此接口更像是一种约定,而抽象类的作用更偏向是放通用的代码,防止冗余。
接口是一种规范,是在设计代码时设计出其主体功能,就像对于集合来说,不论是ArrayList,还是LinkedList都有其其通用的功能,添加,删除,修改等,这些在设计接口的时候都设计好了。
关于抽象类,就是把能够通用的功能做实现,不能通用的功能继续抽象,到其实体自类中根据实体类的特征去做实现,
就比如有一个接口I,它里面有两个抽象方法add(),put(),其有两个实体类A,B继承了该接口,做了实现,然后你发现在实体类中A,B代码中add()是一样的,但put()是不一样的,考虑代码设计不要冗余和做重复的工作,那你是不是应该让add()代码能够只写一遍,但是对于put()方法还必须分开写,这时候你还不能在接口中写,是不是需要抽象类了。