当前位置:   article > 正文

Java接口(详解)

java接口
  • 概念:如果一个类中所有的方法都是抽方法,则这个类就可以表示为Java中另外一种类型,即接口。
  • 接口是一种特殊的抽象类。

接口定义格式:

  1. [修饰符] interface <接口名> extends 父类接口1,父类接口2...
  2. {
  3. //属性和方法的定义
  4. }
  • 接口的结构与类完全相同。
  • 接口的访问控制修饰符与类一样, 但只有public和默认两种。
  • 接口的声明要使用关键字interface,声明类的关键字是class。
  • 接口中所有的方法都是抽象方法,默认的修饰符为“public abstrecr".在定义中可以省略。例如,“void eat ();” 表示定义了一个抽象方法eat ()。
  • 接口中所有的变量都是全局常量,默认的修饰符为“publice static final", 在定义中可以省略。例如,“int a=10;"表示定义了一个全局常量a。
  • 接口可以继承多个其他接口,即通过接口实现了多重继承。
  • 接口不能被实例化,接口中没有构造方法,需要通过一个类来实现接口中所有抽象方法,才能被实例化,这个类可以称为接口的实现类。实现接口使用关键字implements。
  • implements可以实现多个接口。
  • 实现接口必须重写接口中的方法。
  • 接口的本质是契约。

接口的作用:

  • 约束
  • 定义一些方法,让不同的人实现。
  • 接口中默认的方法:public abstract

案例一

定义两个接口:UserService、TimeService

  1. public interface UserService {
  2. //定义一个属性 (常量)public static final
  3. int AGE = 69;
  4. //接口都需要有实现类
  5. //接口中的所有定义方法都是抽象的 public abstract
  6. //定义四个方法
  7. void add(String name);
  8. void delete(String name);
  9. void update(String name);
  10. void query(String name);
  11. }
  1. public interface TimeService{
  2. void timer();
  3. }

定义一个实现类:UserServiceImpl

  1. //实现接口的类,需要重写接口中的方法
  2. //一个类可以实现接口,通过关键字implements
  3. //
  4. public class UserServiceImpl implements UserService,TimeService{//利用接口实现多继承
  5. @Override
  6. public void add(String name) {
  7. }
  8. @Override
  9. public void delete(String name) {
  10. }
  11. @Override
  12. public void update(String name) {
  13. }
  14. @Override
  15. public void query(String name) {
  16. }
  17. @Override
  18. public void timer() {
  19. }
  20. }

案例二

创建一个接口,定义两个方法

  1. public interface UserService {
  2. void eat();
  3. void run();
  4. }

创建两个子类,定义方法的具体细节。

  1. public class Person implements UserService{
  2. @Override
  3. public void eat() {
  4. System.out.println("大家在吃东西");
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println("大家在跑步");
  9. }
  10. }
  1. public class Student implements UserService{
  2. @Override
  3. public void eat() {
  4. System.out.println("学生在吃零食");
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println("学生在跑步");
  9. }
  10. }

创建一个Application类

  1. public class Application{
  2. public static void main(String[] args) {
  3. Person person = new Person();
  4. Student student = new Student();
  5. person.run();
  6. person.eat();
  7. student.run();
  8. student.eat();
  9. }
  10. }

运行结果:

 

案例三:接口的多继承

创建两个接口

  1. public interface TimeService {
  2. void eat();
  3. }
  1. public interface UserService {
  2. void run();
  3. }

创建两个子类

  1. public class Person {
  2. String name = "林枫";
  3. int age = 20;
  4. public void show(){
  5. System.out.println("姓名:"+name+"\t年龄:"+age);
  6. }
  7. }
  1. public class Student extends Person implements TimeService,UserService{
  2. @Override
  3. public void eat() {
  4. System.out.println("在吃饭");
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println("在比赛");
  9. }
  10. }

创建一个Application类

  1. public class Application {
  2. public static void main(String[] args) {
  3. Person person = new Person();
  4. Student student = new Student();
  5. student.show();
  6. student.eat();
  7. student.run();
  8. }
  9. }

运行结果:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/773026
推荐阅读
相关标签
  

闽ICP备14008679号