首页 > 代码库 > Java面向对象-接口

Java面向对象-接口

Java面向对象-接口

 

接口定义:一种特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法所组成;

1,接口的定义

接口定义用关键字 interface

我们给下实例代码:

 1 package com.java1234.chap03.sec12;
 2  
 3 /**
 4  * 定义一个接口A
 5  * @author user
 6  *
 7  */
 8 public interface A {
 9  
10     /**
11      * 全局常量
12      */
13     public static final String TITLE="hello";
14      
15     /**
16      * 定义一个抽象方法 abstract可以省略  
17      */
18     public abstract void a();
19 }

注意点:由于接口里的方法都是抽象的,所以abstract可以省略,实际开发一般都是省略的,开发者的习惯;

 

2,实现接口 可以实现一个或者多个接口

实现接口我们用implements关键字,我们来搞一个测试方法:

 1 package com.java1234.chap03.sec12;
 2  
 3 public class Test implements A{
 4  
 5     @Override
 6     public void a() {
 7         System.out.println("a方法");
 8     }
 9  
10     public static void main(String[] args) {
11         Test t=new Test();
12         t.a();
13         System.out.println(Test.TITLE);
14     }
15 }

实现接口 ,类里要实现接口里的抽象方法;

运行输出:

 a方法

 hello

为了演示实现多个接口,我们这里再定义一个接口:

 1 package com.java1234.chap03.sec12;
 2  
 3 /**
 4  * 定义一个接口B
 5  * @author user
 6  *
 7  */
 8 public interface B {
 9  
10     /**
11      * 全局常量
12      */
13     public static final String TITLE2="java知识分享网";
14      
15     /**
16      * 定义一个抽象方法 abstract可以省略  
17      */
18     public abstract void b();
19 }

我们修改下Test类:

 1 package com.java1234.chap03.sec12;
 2  
 3 public class Test implements A,B{
 4  
 5     @Override
 6     public void a() {
 7         System.out.println("a方法");
 8     }
 9      
10     @Override
11     public void b() {
12         System.out.println("b方法");
13     }
14  
15     public static void main(String[] args) {
16         Test t=new Test();
17         t.a();
18         t.b();
19         System.out.println(Test.TITLE);
20         System.out.println(Test.TITLE2);
21     }
22  
23      
24 }

实现多个接口,中间用逗号隔开,并且实现所有抽象方法

运行输出:

a方法

b方法

hello

java知识分享网

 

3,继承类和实现接口 先继承,后实现接口

我们先定义一个类C:

1 package com.java1234.chap03.sec12;
2  
3 public class C {
4  
5     public void c(){
6         System.out.println("c方法");
7     }
8 }

我们再修改下测试类Test 继承C类,实现A,B接口,这里有个注意点,java规范,必须先继承后实现接口;

我们上下代码:

 1 package com.java1234.chap03.sec12;
 2  
 3 public class Test extends C implements A,B{
 4  
 5     @Override
 6     public void a() {
 7         System.out.println("a方法");
 8     }
 9      
10     @Override
11     public void b() {
12         System.out.println("b方法");
13     }
14  
15     public static void main(String[] args) {
16         Test t=new Test();
17         t.a();
18         t.b();
19         t.c();
20         System.out.println(Test.TITLE);
21         System.out.println(Test.TITLE2);
22     }
23  
24      
25 }

运行输出:

a方法

b方法

c方法

hello

java知识分享网

 

4,接口的继承  接口可以多继承

我们定义一个D接口 继承A,B接口

1 package com.java1234.chap03.sec12;
2  
3 public interface D extends A,B{
4  
5     public void d();
6 }

这里再加一个d方法;

 

我们重新搞一个测试方法 继承C类,实现D接口:

 1 package com.java1234.chap03.sec12;
 2  
 3 public class Test2 extends C implements D{
 4  
 5     @Override
 6     public void a() {
 7         System.out.println("a方法");
 8     }
 9  
10     @Override
11     public void b() {
12         System.out.println("b方法");
13     }
14  
15     @Override
16     public void d() {
17         System.out.println("d方法");
18     }
19  
20     public static void main(String[] args) {
21         Test2 t=new Test2();
22         t.a();
23         t.b();
24         t.c();
25         t.d();
26         System.out.println(Test2.TITLE);
27         System.out.println(Test2.TITLE2);
28     }
29 }

运行输出:

a方法

b方法

c方法

d方法

hello

java知识分享网

 

注:

Java中接口不能被实例化的

Java面向对象-接口