接口和抽象类使用场合

来源:互联网 发布:pt软件下载 编辑:程序博客网 时间:2024/04/27 14:16

interface接口和抽象类的区别,什么时候用接口什么时候用抽象类

* interface 中的方法不能有实现,作用是分类功能,一个类可以实现多个接口.
public interface IFoo{
//做a+b计算返回结果
int doPlus(int a, int b);
}

public interface IBar{
//做a+b-c计算返回结果
int doMath(int a, int b, int c);
}

public Impl implements IFoo,IBar{
public int doPlus(int a, int b){
return a+b;
}
public int doMath(int a, int b, int c){
return a+b-c;
}
.....
}

* 抽象类的作用的定义公共功能。抽象类和其子类是有上下级关系的。同时一个子类只能继承一个父类.
public abstract class Bar {
public void doCommon(){
.......
}
public abstract int doSomething();
}

public class Foo extends absFoo{
public int doSomething(){
int res=0;
....
return res;
}
}
其他类使用Foo的实例时也能使用其父类方法foo.doCommon(), 这样当doCommon方法改动的时候,只需要改父类,所有子类的这个功能也都同时更新。

* interface中定义的属性一定是public static final的不管你加不加这些; 而抽象类中的属性和类的一样可以通过上述关键字来定义,并不是默认强加的。