【接口】(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。

  1. 第一种方式可以让 MyService 实现 ServiceInterface 接口,即:
    class MyService implements ServiceInterface
  2. 第二种方式可以让 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{
	
	
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值