Java面向对象--接口

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


1,接口的定义

接口定义用关键字 interface


我们给下实例代码:

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


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


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

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

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

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

运行输出:

a方法

www.java1234.com


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

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


我们修改下Test类:

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

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

运行输出:

a方法

b方法

www.java1234.com

java知识分享网


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

我们先定义一个类C:

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


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

我们上下代码:

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

运行输出:

a方法

b方法

c方法

www.java1234.com

java知识分享网


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

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

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

这里再加一个d方法;


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

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

运行输出:

a方法

b方法

c方法

d方法

www.java1234.com

java知识分享网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值