@XQF
2017-02-15T14:40:58.000000Z
字数 453
阅读 975
java
接口中的方法只能是由public 和abstract来修饰。
接口中的属性默认为应该,有属性,这个属性必然是常量,定义的时候就要进行初始化。
抽象类中的方法被声明为抽象方法后就不能再定义方法体了。所以抽象类中还可以有没有被声明为抽象方法的方法。于是乎有可能出现抽象类中没有抽象方法的尴尬。
抽象类主要是用于在同类事物中有无法具体描述的方法的场景,所以当子类和父类存在逻辑上的结构层次的时候推荐使用抽象类。
比如使用的SingleFragmentActivity架构
而接口多用于不同类之间,定义不同类之间的通信规则,所以当希望支持差别较大的两个或者更过对象之间的特定交互行为时,应该使用接口。
比如OnClickListener接口,本来实现这个接口的类主要是view。假如我要自定义一个Activty来实现这个接口,就使得这个Activity也能进行监听。Activity类和View类的差别还是很大的,就不要说存在一个相同架构了。