大家好,今天来分享一下Java接口与实现
普通类:只有具体实现
抽象类:具体的实现和规范(抽象方法都有)
接口: 只有规范,自己是无法写方法的,它属于专业的专业的约束
约束和实现分离:面向接口编程
接口就是规范,定义的是一组规则,它体现了在现实世界“如果你是…就必须做…” 的思想
接口的本质是契约,就像班级的规章制度一样,制定好了之后,所有学生必须遵守
接口也是面向对象的精髓,是对于对象的抽象,最可以体现这一点的,就是接口
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
声明类的关键字是class,声明接口的关键字interface
这是java 接口的语法格式
1
2
3
4
5[可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法 }
上源码
创建UserService 类
1
2
3
4
5package Demo11; public class UserService { //这是普通类 }
普通类的图标是这样的(在IDEA当中)
这是抽象类的图标
仔细看,他俩是不一样的
接口是这样写的
1
2
3
4
5
6package Demo11; //interface : 接口 public interface UserService { }
1
2
3
4
5
6
7
8
9
10
11
12
13
14package Demo11; public interface UserService { public void run(){ //接口里面是无法方法实现 //这一行会报错 } }
1
2
3
4
5
6
7
8
9
10可以这样写 package Demo11; //interface :接口关键字 public interface UserService { //接口中的所有定义都是抽象的public abstract public abstract void run(); //第一种 //void run(); 这两种写法都是对的 第二种 }
这里我们主要是定义了四个方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package Demo11; //interface :接口关键字 ,接口都是要有实现类 public interface UserService { //接口中的所有定义都是抽象的public abstract public abstract void add(String name);//第一种 (增加) public abstract 可以不写 void delete(String name); //(删除) void update(String name); //改 void query(String name); //定义四个方法 //void run(); 这两种写法都是对的 第二种 }
创建UserServiceImpl类 ,作为上面方法的实例类
1
2
3
4
5
6
7package Demo11; //抽象类 : //类 :可以实现接口 implements 接口 public class UserServiceImpl implements UserService { //这样直接写会报错 的 }
这是错误的截图
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
28package Demo11; //抽象类 : //类 :可以实现接口 implements 接口 public class UserServiceImpl implements UserService { //我们要对方法进行重写,重写才可以正常 //实现了接口的实例类,就要重写接口当中的方法 @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } }
我们在这里再定义一个接口
1
2
3
4
5
6
7package Demo11; public interface TimeService { void timer(); }
我们使用刚才的实例类代码块来做
这里会报错的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25package Demo11; //抽象类 : //类 :可以实现接口 implements 接口 public class UserServiceImpl implements UserService,TimeService { @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } }
这是报错的截图
现在,我们在接口中,重写一下方法
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
30package Demo11; //抽象类 : //类 :可以实现接口 implements 接口 public class UserServiceImpl implements UserService,TimeService { @Override public void add(String name) { //重写方法 } @Override public void delete(String name) { //重写方法 } @Override public void update(String name) { //重写方法 } @Override public void query(String name) { //重写方法 } @Override public void timer() { //重写方法 } }
以上这个是正确的代码
关于接口的总结
1.接口弥补了Java单继承的局限
2. 接口本质上就是约束
3. 定义一下方法, 可以让不同的人实现
4. public static final //这个不常用
5. public abstract //抽象化
6. 接口不可以被实例化,接口当中没有构造方法,因为接口不是类
7. implements 可以实现多个接口
8. 必须要重写接口当中的方法
好了,关于 Java接口的定义和实现就讲到这里了,谢谢大家
最后
以上就是痴情煎蛋最近收集整理的关于Java接口的定义与实现的全部内容,更多相关Java接口内容请搜索靠谱客的其他文章。
发表评论 取消回复