一个子类可以实现多个接口
package com.baidu.dao;
//接口一
public interface IDeptDAO {
/**
* 删除数据
* @return
*/
public int doRemove();
}
package com.baidu.dao;
//第二个接口
public interface IEmpDAO {
/**
*
* @param emopno 要更新的数据编号
* @return
*/
public int doUpdate(Integer emopno);
}
package com.baidu.dao.imp;
import com.baidu.dao.IDeptDAO;
import com.baidu.dao.IEmpDAO;
public class EmpDAOImpl implements IEmpDAO, IDeptDAO {
@Override
public int doRemove() {
System.out.println("删除数据成功");
return 0;
}
@Override
public int doUpdate(Integer eloop) {
System.out.println("更新数据成功");
return 0;
}
}
如果要让一个子类实现多个接口,那么使用在implements之后使用逗号将需要实现的接口隔开。
public class Hi {
public static void main(String[] args) {
EmpDAOImpl dao = new EmpDAOImpl();
dao.doRemove();
dao.doUpdate(1001);
}
}
接口之间可以相互继承
package com.baidu.dao;
/**
* 这是一个父接口
*/
public interface IBaseDAO {
public int doRemove();
}
package com.baidu.dao;
//接口一
public interface IDeptDAO extends IBaseDAO {
/**
* 子接口新扩充的方法
* @return
*/
public void getInfo();
}
package com.baidu.dao.imp;
import com.baidu.dao.IDeptDAO;
import com.baidu.dao.IEmpDAO;
public class EmpDAOImpl implements IDeptDAO {
@Override
public void getInfo() {
System.out.println("子接口新扩充的方法:取得数据");
}
@Override
public int doRemove() {
System.out.println("父接口中的方法:删除数据成功");
return 0;
}
}
public class Hi {
public static void main(String[] args) {
IDeptDAO dao = new EmpDAOImpl();//赋值给子接口
dao.doRemove();
dao.getInfo();
}
}
接口继承接口也是 “extends” 关键字,子类要实现所有接口(包括父接口)的抽象方法
继承友实现
一个子类既继承一个抽象类同时又能实现接口
package com.baidu.dao;
public abstract class MyAbstract {
public abstract void say();
}
package com.baidu.dao;
public class DeptDAOImpl extends MyAbstract implements IDeptDAO {
@Override
public void getInfo() {
System.out.println("子接口新扩充的方法:取得数据");
}
@Override
public int doRemove() {
System.out.println("父接口中的方法:删除数据");
return 0;
}
@Override
public void say() {
System.out.println("实现了抽象类中的方法");
}
}
public class Hi {
public static void main(String[] args) {
DeptDAOImpl dao = new DeptDAOImpl();
dao.say();
dao.doRemove();
dao.getInfo();
}
}
输出:
实现了抽象类中的方法
父接口中的方法:删除数据
子接口新扩充的方法:取得数据
一个子类如果继承了抽象类又实现了接口,那么该子类必须实现抽象类中的抽象方法,同时也要实现接口中的抽象方法。
小结
- 一个类可以实现多个接口,其实这解决了继承的单继承局限。在implement之后用逗号将要实现的接口隔开。
- 接口可以继承接口,关键字“extends”。
- 一个类可以继承抽象类同时实现接口。
- 抽象类和子类之间的使用“继承”来描述他们之间的父子关系,接口和其子类使用“实现”来描述他们之间的父子关系。