【接口】(7)直接实现接口与继承实现了接口的抽象类的区别
作者:互联网
有如下代码:
interface ServiceInterface{
void doService1();
void doService2();
void doService3();
}
abstract class AbstractService implements ServiceInterface{
public void doService1() {};
public void doService2() {};
public void doService3() {};
}
需要一个实现 ServiceInterface 接口的类 MySerbice。
- 第一种方式可以让 MyService 实现 ServiceInterface 接口,即:
class MyService implements ServiceInterface - 第二种方式可以让 MyService 继承 AbstractService 类,即:
class MyService extends AbstractService
请问:这两种方式有什么区别?
方法一: 让MyService实现ServiceInterface接口,MyService中必须实现接口中的全部方法。
方法二:让MyService 继承AbstractService类,由于抽象类已经实现了接口中全部方法,故MyService只根据自身需要选择性重写部分方法即可。
应用:适配器
简易版例子
接口
public class TestServlet {
public static void main(String[] args) {
}
}
interface Servlet{
void init();
void destroy();
void service();//为了使用这样一个方法
}
方法一:直接实现接口
class MyServlet implements Servlet{
@Override
public void init() {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void service() {
// TODO Auto-generated method stub
}
}
方法二:继承实现了接口的类
class HttpServlet implements Servlet{
@Override
public void init() {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void service() {
// TODO Auto-generated method stub
}
}
class MyServlet extends HttpServlet{
}
[ 略略略 ]
发布了7 篇原创文章 · 获赞 0 · 访问量 47
私信
关注
标签:实现,void,接口,class,MyService,Override,抽象类,public 来源: https://blog.csdn.net/weixin_43196768/article/details/104542354