请详细说明为什么使用抽象类而不使用接口,或者为什么使用接口而不使用抽象类
我也想过这个问题,两者确实比较像。
使用接口,你是想规定开发者(包括自己)需要实现一系列特定的类方法。
使用抽象类,你是想规定开发者(包括自己)需要实现一系列特定的类方法并且提供一些基本的类方法以供开发者使用。
另一个区别是:一个类可以实现多个接口,但是只能继承一个抽象类。如果你的代码是要规范一个很细的功能(比如Iterator
什么的),那就用接口。其他的则可以用接口也可以用抽象类。
最后,有人建议如果不知道该用接口还是抽象类,可以做的是定义一个接口然后写一个实现那个接口的抽象类。
接口是一种协定,抽象类则相当于类模板。
使用抽象类,而不要使用接口来分离协定与实现。
如果需要提供多态层次结构的值类型,使用接口。
如果一个类型必须实现多个协定,或者协定适用于多种类型,使用接口。
虽然抽象类和接口都支持将协定与实现分离开来,但接口不能指定以后版本中的新成员,而抽象类可以根据需要添加成员以支持更多功能。
优先考虑定义类,而不是接口。
事实抽象类和接口类,在应用中,有无都不影响程序运行;只是规范作用而已
比如抽象类:比如定义当前类只能继承使用,不可直接引用
接口类:最大作用就是起到规范作用。适用底层框架编写完成后。为了后续的拓展,但又得保证代码规范,一般会写接口类,以便后期开发人员规范开发!
单继承多接口的情况下,接口是血统的一个关键因素,一个接口可以规定一个业务场景。。比如你是一个人,是抽象类继承过来的,你需要实现接口比如是某个公司的员工,是程序猿,这种方法类的层级相对较少。也可以某公司员工是一个抽象类继承人,然后程序猿继承某公司员工,这样。看设计上怎么做。trait和接口能在第一种模式中提供极大的重用性
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答832 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答711 阅读✓ 已解决
强调动作用接口,强调类别用抽象。