[インタフェース](7)を直接抽象クラスインターフェースとの間の差の実装を継承するインターフェース

私たちは、次のコードを持っています:

interface ServiceInterface{
	void doService1();
	void doService2();
	void doService3();
}
abstract class AbstractService implements ServiceInterface{
	public void doService1() {};
	public void doService2() {};
	public void doService3() {};
}

MySerbice ServiceInterfaceはクラス実装するインタフェースを必要としています。

  1. 第一の方法はMyServiceでServiceInterface、すなわち、インターフェースを実装することができ
    、クラスMyServiceで実装さServiceInterfaceを
  2. :第二の方法は、MyServiceで継承AbstractServiceカテゴリー、すなわちことができます
    クラスMyServiceで拡張AbstractService

私はあなたを求める:これら二つの方法の違いは何ですか?

方法1:レッツMyServiceではServiceInterfaceインタフェースを実現する、インタフェースのすべてのメソッドでMyServiceでは、実装する必要があります。
方法2:抽象クラスのインターフェイスは、すべてのメソッドを達成したので、レッツたMyService AbstractServiceクラスの継承、それは方法の一部を書き換えるために彼らの必要性に応じてのみMyServiceで選択的です。

アプリケーション:アダプター
スターター例

インターフェース

public class TestServlet {

	public static void main(String[] args) {
		

	}

}
interface Servlet{
	void init();
	void destroy();
	void service();//为了使用这样一个方法
	
	
}

方法1:直接インタフェースを実装します

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
		
	}
	
	
}

方法2:インタフェースを実装継承したクラス

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 ビュー42

おすすめ

転載: blog.csdn.net/weixin_43196768/article/details/104542354