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 }

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

时间: 2024-10-22 15:50:31

java中implements和extends的使用小结的相关文章

JAVA中字符串函数subString的用法小结

本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; demo:

如何理解 Java 中的 <T extends Comparable<? super T>>

1 <T extends Comparable<T>> 和 <T extends Comparable<? super T>> 有什么不同 <T extends Comparable<T>> 类型 T 必须实现 Comparable 接口,并且这个接口的类型是 T.只有这样,T 的实例之间才能相互比较大小.例如,在实际调用时若使用的具体类是 Dog,那么 Dog 必须 implements Comparable<Dog>

JAVA中implements的用法

implements使用 interface Sport { void run(); void jump(); } class Athlete implements Sport { public void run() { System.out.println("短跑"); } public void jump() { System.out.println("跳高"); } public static void main(String[] args) { Ahtlet

java中extends与implements的区别

学了java很久了,久不用之后给同学解决一个java问题的时候,就卡在这个标题上了. 下面是java中extends与implements的区别: 1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要那个类不是声明为f

JAVA中extends 与implements有啥区别?

JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口

java中extends与implements区别

继承和接口两者间的区别有多种解释,相信有少部分初步了解的时候有些困惑,在这里发表了个人理解的解释,如果你能看得懂那就更好了,你已经是大神了请忽略这篇理解不完整的解释吧! 首先,看看他两个概念,跟其随后是通熟易懂的口水话来解释. [extends:继承类].我们定义了一个类,类里面有方法体(是一些功能的实现),在另外的类中有需求我们前面定义的类里面的功能,那么可使用extends这个关键字来继承前类的功能.我们可将前面的那个类称为父类,后面的那个类称为子类,就像儿子继承父亲一些事物,如财产.表示为

Java 中extends与implements使用方法 (转载)

转自:http://blog.csdn.net/chen_chun_guang/article/details/6323201 初学Java语言, 代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { int ID = 1; void run (); } //定义一个interface Animal,它继承于父类Runner interface Animal extend

JAVA中extends&#160;与implements的用法

1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用. 2.extends 是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继

JAVA中extends 与implements区别

JAVA中extends 与implements区别 JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract