淺析Java語言中接口的特點和繼承
一、接口的繼承
1.定義一個接口使用extends關鍵字來繼承另一個接口,這就是接口的繼承。
2.語法:
- [修飾符] interface 接口名 extends 父類接口1, 父類接口2, …{
- 定義常量0個或多個;
- 定義抽象方法0個或多個;
- }
3.如何實現接口的繼承關系例子
- //定義Printer接口
- interface Printer{
- int max_line=20;//定義全局常量
- void printRun();//定義抽象方法pirntRun()
- void printData();//定義抽象方法printData()
- }
- //定義了Autopriner接口,然后繼承Printer接口
- interface Autoprinter extends Printer{//接口繼承
- void autoPrint();//定義抽象方法autoPrint()方法
- }
- //Colorprinter類實現Printer接口
- class Colorprinter implements Autoprinter{
- //實現printRun()方法
- public void printRun(){
- System.out.println("彩色打印機正在啟動");
- }
- //實現printData()方法
- public void printData(){
- System.out.println("彩色打印機正在打印中");
- }
- //實現autoPrint()方法
- public void autoPrint(){
- System.out.println("彩色打印機自動打印");
- }
- }
- public class p27 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Colorprinter c=new Colorprinter();//創建Colorprinter類的實例對象
- c.printRun();//調用Colorprinter類的printRun()方法
- c.printData();//調用Colorprinter類的printData()方法
- c.autoPrint();//調用Colorprinter類的autoPrint()方法
- }
- }
輸出的結果是:
- 彩色打印機正在啟動
- 彩色打印機正在打印中
- 彩色打印機自動打印
從上面的代碼中,首先是定義了Printer接口,定義全局常量和兩個方法分別是printRun()和printData(),然后再定義一個Autopriner接口來繼承Printer接口,再Colorprinter類實現Printer接口,此時,Autopriner接口有三個抽象方法,通過Colorprinter類實例化對象然后調用對應的方法。
二、接口的特點
1.接口里的方法是抽象的,不可以去實例化對象。
2.如果實現某接口的類是抽象類,那么可以不實現該接口的所有方法。對于這個抽象類任何一個不是抽象類的子類來說,就需要實現所有抽象方法。
3.一個類使用implements關鍵字實現多個接口
例如:
- //定義A接口
- interface A{
- int MAX=1;//定義全局常量
- void testA();//定義抽象方法testA()
- }
- //定義B接口
- interface B{
- int MAX=2;//定義全局常量
- void testB();//定義抽象方法testB()
- }
- //定義一個類實現A,B接口
- class C implements A,B{
- int MAX=3;//定義全局常量
- //實現testB()方法
- @Override
- public void testB() {
- // TODO Auto-generated method stub
- System.out.println("我是B");
- }
- //實現testA()方法
- @Override
- public void testA() {
- // TODO Auto-generated method stub
- System.out.println("我是A");
- }
- }
- public class p28 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- C c=new C();//創建C類實例對象
- c.testA();//調用C類的testA()方法
- c.testB();//調用C類的testB()方法
- }
- }
運行的結果是:
- 我是A
- 我是B
從上面代碼中,定義了A和B接口,在C類中使用implements關鍵字實現A和B的接口的方法,實例化對象并調用對應的方法。
4.一個接口使用extends關鍵字實現繼承多個接口
例如:
- //定義A接口
- interface A{
- int MAX=1;//定義全局常量
- void testA();//定義抽象方法testA()
- }
- //定義B接口
- interface B{
- int MAX=2;//定義全局常量
- void testB();//定義抽象方法testB()
- }
- //定義接口繼承A,B接口
- interface C extends A,B{
- int MAX=3;//定義全局常量
- void testC();//定義testC()方法
- }
- public class p29 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(A.MAX);
- System.out.println(B.MAX);
- System.out.println(C.MAX);
- }
- }
運行的結果是:
- 1
- 2
- 3
5.一個類在實現某接口的抽象方法,就需要使用一樣的方法頭。
6.如果實現某接口的類不是抽象類,那么類的定義部分需要實現指定接口的所有抽象方法。
三、總結
本文主要介紹了接口的繼承和接口的特點。
接口的繼承是定義一個接口使用extends關鍵字來繼承另一個接口,通過如何實現接口的繼承例子來幫助大家的理解這個用法。
一個類使用implements關鍵字實現多個接口,一個接口使用extends關鍵字實現繼承多個接口。
本文轉載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系Java進階學習交流公眾號。