java中implements和extends的使用小结

时间:2022-12-28 17:34:34
  1 interface InterfaceOne
2 {
3 void sayHello();
4 }
5 /*接口之间要用extends关键字
6 interface InterfaceTwo implements interfaceOne
7 {
8
9 }*/

10 interface InterfaceThree extends InterfaceOne
11 {
12 }
13 //抽象类可以不用实现接口或父抽象类的方法。
14 abstract class AbstractClassOne implements InterfaceOne
15 {
16 }
17 abstract class AbstractClassTwo extends AbstractClassOne
18 {
19 }
20 //非抽象类一定要实现接口内的方法。
21 class ClassOne implements InterfaceOne
22 {
23 public void sayHello() {};
24 }

如果遇到一个接口中需要实现的方法很多,但我们只需要用其中的几个方法,
假设需要继承的接口是:

  1 interface A
2 {
3 void operation1();
4 void operation2();
5 ……
6 void operation100();
7 }

假设我们只需要使用其中的operation5
如果直接继承这个接口,则所有方法都要实现:

  1 class Class implements A
2 {
3 public void operation1(){}
4 public void operation2(){}
5 ……
6 public void operation5(){
7 /*
8 * operation5
9 */

10 }
11 ……
12 public void operation100(){}
13 }

这样十分麻烦,所以可以使用如下方法解决,
新建一个抽象类(如果规定一个接口方法一定要实现,则把它设为抽象方法,比如说operation99必须要实现):

  1 abstract class Abstract implements A
2 {
3 public void operation1(){}
4 public void operation2(){}
5 ……
6 public void operation98(){}
7 //这里的operation99就不提供虚实现,从而必须要在具体类中实现它。
8 public void operation100(){}
9 }

为所有接口方法提供一个虚实现,今后要利用这个接口只需要进行如下操作:

  1 class Class extends Abstract
2 {
3 //重写operation5
4 public void operation5(){
5 /*
6 * operation5
7 */

8 }
9 //实现operation99
10 public void operation99(){
11 /*
12 * operation99
13 */

14 }
15 }

这样就不必为每个接口方法提供实现了。