好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

详解java接口基础知识附思维导图

接口 :

官方的含义是----> java 接口是一系列方法的声明,是一些方法特征的集合

疑问:

那为什么不用抽象类呢?把他们共有的方法集合起来放在一个抽象类里面,同样可以调用哇,但是反过来想一想如果这些方法,不是同一个类,就比如飞这个方法,飞机有飞这个方法,蚊子有飞这个方法,如果让他连同时继承拥有飞这个抽象类里面,是不符合单一职责原则的,所以我们可以提供一个飞的接口,飞机,蚊子来实现这个接口,那么飞机和蚊子就拥有飞的能力啦,这是我对接口的理解

因为最近在学习java 面向对象中的接口,就画了 思维导图 :

这是我对接口知识的基本总结

举一个案例希望大家能理解接口!

现在有一个需求,有一个门door类,有一个防盗门antithedoor类,有一个铁门irondoor类,因为防盗门和铁门都有门的属性,所以二者
继承门door类
他们都有一个功能,就是上锁与开锁,还有一个防盗门独有的功能,就是猫眼cateye功能,猫眼功能是防盗门独有的方法,所以应当把
猫眼看成一个接口,防盗门可以实现它,这样我们用代码怎么来诠释呢(定义与实现)

父类door

?

1

2

3

4

5

6

7

8

9

10

11

12

public abstract class door {

 

     /**

      * 开门

      */

     public abstract void open();

     /**

      * 关门

      */

     public abstract void close();

    

}

接口:只写应该具有的功能

?

1

2

3

4

5

6

7

8

public interface cateye {

     /**

      * 在使用接口的所有类中,需要实现接口中所有的方法

      * 他们有这个功能,但是具体的实现放是不一样的,需要实现他的类在里面重新定义它新的生命,就比如,普通的防盗门里的猫眼就是简单的看

      * 但是,还有一些猫眼的看有扫描的功能,不同的需求放在不同的类里面来具体的实现

      */

     void look();

}

?

1

2

3

4

5

6

7

8

public interface lock {

 

     /**

      * 上锁

      */

     void uplock();

     void downlock();

}

防盗门是门door的子类,继承父类开门关门的方法,同时拥有上锁,与猫眼的功能

?

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

30

31

32

33

34

35

36

37

38

public class antithedoor extends door implements lock,cateye{

 

     @override

     public void look() {

         system.out.println( "防盗门的猫眼,伸头瞪眼" );

        

     }

 

     @override

     public void uplock() {

         // todo 自动生成的方法存根

         system.out.println( "防盗门开锁:左转三圈" );

        

     }

 

     @override

     public void downlock() {

         // todo 自动生成的方法存根

         system.out.println( "防盗门的关锁,右转三圈" );

        

     }

 

     @override

     public void open() {

         // todo 自动生成的方法存根

         system.out.println( "防盗门的开门:用头顶" );

        

     }

 

     @override

     public void close() {

         // todo 自动生成的方法存根

         system.out.println( "防盗门的关门:用脚蹬" );

        

     }

    

 

}

相比于防盗门,铁门只有上锁的功能

?

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

public class irondoor extends door implements lock{

 

     @override

     public void uplock() {

         system.out.println( "铁门的开锁,右转三圈" );

        

     }

 

     @override

     public void downlock() {

         system.out.println( "铁门的上锁,左转三圈" );

        

     }

 

     @override

     public void open() {

         system.out.println( "铁门的开门用脚蹬" );

        

     }

 

     @override

     public void close() {

             system.out.println( "铁门的关门方式,用头顶" ); 

     }

    

 

}

测试类:

?

1

2

3

4

5

6

7

8

9

10

public class test {

 

     public static void main(string[] args) {

         antithedoor atd = new antithedoor();

         atd.uplock();

         atd.open();

         atd.close();

         atd.downlock();

     }

}

运行结果:

防盗门开锁:左转三圈
防盗门的开门:用头顶
防盗门的关门:用脚蹬
防盗门的关锁,右转三圈

 一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以有具体不同的能力.

以上所述是小编给大家介绍的java接口基础知识详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

原文链接:https://blog.csdn.net/lin2535290272/article/details/89059968

查看更多关于详解java接口基础知识附思维导图的详细内容...

  阅读:13次