浅析Java语言中接口的特点和继承

开发 后端
本文主要介绍了接口的继承和接口的特点。接口的继承是定义一个接口使用extends关键字来继承另一个接口,通过如何实现接口的继承例子来帮助大家的理解这个用法。

[[377403]]

一、接口的继承

1.定义一个接口使用extends关键字来继承另一个接口,这就是接口的继承。

2.语法:

  1. [修饰符] interface 接口名 extends 父类接口1, 父类接口2, …{ 
  2.         定义常量0个或多个; 
  3.         定义抽象方法0个或多个; 

3.如何实现接口的继承关系例子

  1. //定义Printer接口 
  2. interface Printer{ 
  3.     int max_line=20;//定义全局常量 
  4.     void printRun();//定义抽象方法pirntRun() 
  5.     void printData();//定义抽象方法printData() 
  6. //定义了Autopriner接口,然后继承Printer接口 
  7. interface Autoprinter extends Printer{//接口继承 
  8.     void autoPrint();//定义抽象方法autoPrint()方法 
  9.  
  10. //Colorprinter类实现Printer接口 
  11. class Colorprinter implements Autoprinter{ 
  12.     //实现printRun()方法 
  13.     public void printRun(){ 
  14.         System.out.println("彩色打印机正在启动"); 
  15.   } 
  16.     //实现printData()方法 
  17.     public void printData(){ 
  18.         System.out.println("彩色打印机正在打印中"); 
  19.   } 
  20.     //实现autoPrint()方法 
  21.     public void autoPrint(){ 
  22.         System.out.println("彩色打印机自动打印"); 
  23.   } 
  24.  
  25. public class p27 { 
  26.     public static void main(String[] args) { 
  27.         // TODO Auto-generated method stub 
  28.         Colorprinter c=new Colorprinter();//创建Colorprinter类的实例对象 
  29.         c.printRun();//调用Colorprinter类的printRun()方法 
  30.         c.printData();//调用Colorprinter类的printData()方法 
  31.         c.autoPrint();//调用Colorprinter类的autoPrint()方法 
  32.   } 

输出的结果是:

  • 彩色打印机正在启动
  • 彩色打印机正在打印中
  • 彩色打印机自动打印

从上面的代码中,首先是定义了Printer接口,定义全局常量和两个方法分别是printRun()和printData(),然后再定义一个Autopriner接口来继承Printer接口,再Colorprinter类实现Printer接口,此时,Autopriner接口有三个抽象方法,通过Colorprinter类实例化对象然后调用对应的方法。

二、接口的特点

1.接口里的方法是抽象的,不可以去实例化对象。

2.如果实现某接口的类是抽象类,那么可以不实现该接口的所有方法。对于这个抽象类任何一个不是抽象类的子类来说,就需要实现所有抽象方法。

3.一个类使用implements关键字实现多个接口

例如:

  1. //定义A接口 
  2. interface A{ 
  3.     int MAX=1;//定义全局常量 
  4.     void testA();//定义抽象方法testA() 
  5. //定义B接口 
  6. interface B{ 
  7.     int MAX=2;//定义全局常量 
  8.     void testB();//定义抽象方法testB() 
  9. //定义一个类实现A,B接口 
  10. class C implements A,B{ 
  11.     int MAX=3;//定义全局常量 
  12.     //实现testB()方法 
  13.     @Override 
  14.     public void testB() { 
  15.         // TODO Auto-generated method stub 
  16.         System.out.println("我是B"); 
  17.     //实现testA()方法 
  18.     @Override 
  19.     public void testA() { 
  20.         // TODO Auto-generated method stub 
  21.         System.out.println("我是A"); 
  22.   } 
  23. public class p28 { 
  24.     public static void main(String[] args) { 
  25.         // TODO Auto-generated method stub 
  26.         C c=new C();//创建C类实例对象 
  27.         c.testA();//调用C类的testA()方法 
  28.         c.testB();//调用C类的testB()方法 
  29.   } 

运行的结果是:

  • 我是A
  • 我是B

从上面代码中,定义了A和B接口,在C类中使用implements关键字实现A和B的接口的方法,实例化对象并调用对应的方法。

4.一个接口使用extends关键字实现继承多个接口

例如:

  1. //定义A接口 
  2. interface A{ 
  3.     int MAX=1;//定义全局常量 
  4.     void testA();//定义抽象方法testA() 
  5. //定义B接口 
  6. interface B{ 
  7.     int MAX=2;//定义全局常量 
  8.     void testB();//定义抽象方法testB() 
  9. //定义接口继承A,B接口 
  10. interface C extends A,B{ 
  11.     int MAX=3;//定义全局常量 
  12.     void testC();//定义testC()方法 
  13. public class p29 { 
  14.     public static void main(String[] args) { 
  15.         // TODO Auto-generated method stub 
  16.         System.out.println(A.MAX); 
  17.         System.out.println(B.MAX); 
  18.         System.out.println(C.MAX); 
  19.   } 

运行的结果是:

  1.  

5.一个类在实现某接口的抽象方法,就需要使用一样的方法头。

6.如果实现某接口的类不是抽象类,那么类的定义部分需要实现指定接口的所有抽象方法。

三、总结

本文主要介绍了接口的继承和接口的特点。

接口的继承是定义一个接口使用extends关键字来继承另一个接口,通过如何实现接口的继承例子来帮助大家的理解这个用法。

一个类使用implements关键字实现多个接口,一个接口使用extends关键字实现继承多个接口。

本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。

 

责任编辑:武晓燕 来源: Java进阶学习交流
相关推荐

2022-02-21 09:33:31

接口继承Java语言

2009-04-30 15:15:01

Java抽象类接口

2009-06-29 12:58:47

This关键字java

2009-07-30 18:36:00

C#接口C#抽象类

2017-07-21 09:40:35

Python类、继承和多态

2010-07-20 10:23:24

Perl类

2009-08-27 13:05:06

C#接口特点C#接口实例

2010-03-17 18:38:53

Java编程语言

2012-02-29 09:32:01

Java

2009-06-12 15:01:48

Java数组Java教程

2010-03-15 18:25:27

Java编程语言

2023-11-21 15:46:13

Go内存泄漏

2023-12-30 18:35:37

Go识别应用程序

2012-06-15 09:56:40

2011-03-10 14:19:56

JavaScript

2009-06-12 14:18:20

构造方法Java语言Java教程

2010-01-21 13:48:30

C++基类

2011-04-12 09:46:46

光纤

2011-05-23 11:19:26

2011-07-15 15:47:02

JAVA
点赞
收藏

51CTO技术栈公众号