RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
浅析Java语言中接口的特点和继承

一、接口的继承

创新互联于2013年开始,先为海拉尔等服务建站,海拉尔等地企业,进行企业商务咨询服务。为海拉尔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

2.语法:

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

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

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

输出的结果是:

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

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

运行的结果是:

  • 我是A
  • 我是B

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

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

例如:

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

运行的结果是:

 
 
 
 
  1. 1  
  2. 2 
  3. 3 

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

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

三、总结

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

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

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

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


当前题目:浅析Java语言中接口的特点和继承
URL网址:http://pengzhouwz.cn/article/dhphcos.html