首页 > 编程语言 > 详细

java中接口知识点大总结

时间:2018-05-20 12:15:54      阅读:158      评论:0      收藏:0      [点我收藏+]

接口的确很不好理解!!!!!那我来好好总结一下:

首先要理解接口是一个独立存在的,和类是不一样的东西,所以,直接用接口的定义是:

访问权限控制符 interface 接口名 [extends  接口列表] {
  常量;//接口中的变量都是默认以public static final修饰的
  抽象方法;//接口中的方法默认都是以public abstract修饰的,,注意!!!abstract 和private final  static 并存
  内部类;//接口中可以有内部类

  静态方法;//jdk8支持

  默认方法;//jdk8支持
}

 1 package com.xt.imp.test;
 2 
 3 public interface Animals {
 4 
 5     public static final int I=0;
 6     
 7     public abstract void eat();
 8     
 9     class heart{
10         
11     }
12     
13     public static void sleep() {
14         
15     }
16     
17     public default void work() {
18         
19     }
20 }

 

访问权限控制符:只能是public 和友好的   接口名和public 修饰的接口名一致

[extends  接口列表]代表:接口可以多继承接口,不能 继承类,对比之前的类只能单继承类

1 package com.xt.imp.test;
2 
3 public interface IA extends IMammal,IB {//接口可以多继承接口,不能 继承类,对比之前的类只能单继承类
4 
5 }
6 
7  interface IB{//接口前面的访问控制符只能是public 友好的,public修饰的只能在单个文件里
8     
9 }

 

 

接口中没有构造方法,而抽象类有构造方法,抽象类不能被实例化,但是可以继承其构造方法

接口中没有 静态代码块,非静态代码块

 

 

 

类可以 实现多个接口。

实现接口中的抽象方法,必须严格按照重写的规则

 1 package com.xt.imp.test;
 2 
 3 public class Whales implements IMammal,Animals {//类可以实现多个接口
 4 
 5     @Override
 6     public void move() {
 7         System.out.println("移动。。。");
 8     }
 9     public static void main(String[] args) {
10         System.out.println(IMammal.i);
11     }
12     
13     //实现接口中的抽象方法,必须严格按照重写的规则
14     @Override
15     public void eat() {
16         
17     }
18     
19 }

 

 如果一个类实现了一个接口,但但没有实现接口中的所有抽象方法,那么这个类必须是abstract类。

如果多个接口中定义了相同的抽象方法,则在实现类中只实现其中一个即可

 

接口回调描述的是一种现象:接口声明的变量指向其实现类实例化的对象,那么该接口变量就可以调用接口中的抽象方法。

接口没有构造方法,不能创建自己的对象,但是可以引用实现类的对象

 1 package com.xt.imp.test;
 2 
 3 public class Studens implements IMammal {
 4 
 5     public static void main(String[] args) {
 6         IMammal im = new Studens();
 7         System.out.println(im.i);
 8         im.move();
 9     }
10 
11     @Override
12     public void move() {
13         System.out.println("移动。。");
14     }
15 }

 

 

函数式接口:

1 package com.xt.imp.test;
2 
3 @FunctionalInterface
4 public interface FunctionInterface {
5 
6     void ran();
7 }

 

java中接口知识点大总结

原文:https://www.cnblogs.com/lyxcode/p/9063012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!