interface 接口:其内部不能有实现的方法 只能是未实现的方法 如果继承了接口就必须要实现接口里面的方法 讲到这也就明白一点 但是 什么时候要用接口呢?
举个例子吧 像android里面写代码的时候 一般来说是这样的 比如你有一个A类 这个A类继承了Activity 并实现了OnClickListener
public class A extends Activity implements OnClickListener {}
像这样 这时候你必须要实现OnClickListener里面的方法 就是
@Override
public void onClick(View v) {}
也就是说如果你有方法是想要继承你的实现 也就是实现接口 就可以把他写成接口
假如你们团队有两个人 现在要开发一个项目然后这个项目用到数据库 你们两个写代码的时候肯定都要用到数据库 比如你们有很多表 有很多操作数据库的时候 现在项目经理让你写数据库操作部分的代码 但是这些方法一时半会写不好 但是又不能耽误进度 这个时候你就可以用接口怎么用呢比如:
public interface IDBHelper {
void deleteFav(String where);
Content queryContent(String where);
Menu queryMenu(String where);
………………
}
实现的时候就:
public class DBHelper implements IDBHelper {
public void deleteFav(String where) {
}
public Content queryContent(String where) {
return null;
}
public Menu queryMenu(String where) {
return null;
}
…………
}
这样一来别人就可以调用了 你自己也可以慢慢写方法
so不用等到方法写完 先把接口定义好 方便于之间调用 其不两全其美?
接口调用:
IDBHelper dbHelper=new DBHelper();
dbHelper.deleteFav("");
下面再看下什么时候该用 abstract
接上 现在DBHelper实现了IDBHelper 我们所知道的DBHelper是公用类 也就是大家都用
假如A同事觉得DBHelper的方法不够多 或者是你想添加一个insertContent方法
又假如B同事觉得要再添加一个insertFav方法
C同事觉得………………等 这样一来这个方法就乱套了 大家你加一个 我加一个 显然不利于维护
这个时候就要用到abstrace 把DBHelper定义成abstrace大家都继承DBHelper然后在里面添加自己想添加的方法 同时也可使用他原有的方法 其不是两全其美?
注:抽象类必须有子类实现