java中implements和extends的使用小结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中implements和extends的使用小结相关的知识,希望对你有一定的参考价值。

  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 }

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

以上是关于java中implements和extends的使用小结的主要内容,如果未能解决你的问题,请参考以下文章

Java基础知识—面向对象

java中extends和implements的区别

Java中的implements和extends关键字有啥区别[重复]

java extend 和 implements 的区别

Java 中的extends 和 implements

java中implements和extends的使用小结