Java—接口

发布于:2023-02-09 ⋅ 阅读:(1102) ⋅ 点赞:(1)

一.接口的定义

接口是一种引用的数据类型,接口只是描述应该具备的方法,没有具体的实现,不能实例化。

语法格式

       //A为接口名字
interface A{
      
}

关键字:用interface定义,不在使用class。

二.接口属性和方法的定义

1.接口可以有属性,但由static,final关键字修饰,被称为常量。

2.接口下面的方法全部是抽象方法,没有方法体

3.接口没有构造方法,不能被实例化

interface Net{
        //属性的定义 static final 可以省略
        int year1 = 2022;
        //方法的定义 public也可以省略
        public void methods();
        
    }

 三.接口的实现

那么怎么去实现一个接口呢?

这就需要一个普通的类来实现了,抽象类我们都学过了,大家知道抽象类中有抽象方法和非抽象方法,其中非抽象方法需要通过普通类去继承并且去重写所有的抽象方法。

接口也需要一个普通的类去实现,实现方式如下:

     //A为接口名字
interface  A{

}
    //B为类名  A为上面的接口名字
class B  implements  A{

}

用到了implements关键字,完整的如下

interface Supply{
        //此类是一个抽象类
        void input();
    }

class Computer implements Supply{
        @Override//对接口中抽象类的重写
        public void input() {
            System.out.println("电脑连接电源可以充电");
        }

我们定义一个Supply接口,接口里面有一个input抽象方法,通过Commputer来实现接口Supply,接口里面的所有抽象类都需要在类中重写,这个Supply接口只有一个抽象类,我们只需要重医这一个即可。

四.接口的作用

那么接口有什么作用呢?

让我们一起来看一下:

  • 通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
  • 通过接口可以指明多个类需要实现的方法。
  • 通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

对接口的使用有很多注意事项:

  1. 接口的定义需要用interface关键字
  2. 接口下面可以有属性,但是用static和final来修饰,被称为常量。
  3. 接口不同于类里面没有构造方法
  4. 接口下面全部都是抽象方法
  5. jdk1.8以后可以有默认的方法,这个默认的方法带有方法体。
  6. 使用普通的类去实现接口,并且重写所有的抽象方法
  7. 一个普通的类可以实现多个接口,弥补了单继承的局限性
  8. 一个接口可以继承另一个接口

五.案例分析

电脑类去实现以下的三个接口。

                电源接口

                鼠标接口

                网络接口

比如上面有三个接口,电脑是一个类,让电脑本身不具备插电源 连网线连鼠标的

只有在电脑类基础之上 去实现三个接口之后,那么电脑就会拥有充电 联网连鼠标这些功能的

代码如下:

	interface Supply{
        //创建一个input抽象方法
		void input();
	}
	interface Mouse{
        //创建一个mouse抽象方法
		void mouse();
	}
	interface Net{
        //创建一个internet抽象方法
		void internet();
	}
	class Computer implements Supply,Mouse,Net{
		@Override//对抽象方法input进行重写
		public void input() {
			// TODO Auto-generated method stub
			System.out.println("电脑连接电源可以充电");
		}
		@Override//对抽象方法mouse进行重写
		public void mouse() {
			// TODO Auto-generated method stub
			System.out.println("鼠标插入电脑可以控制电脑");
		}
		@Override//对抽象方法internet进行重写
		public void internet() {
			// TODO Auto-generated method stub
			System.out.println("电脑可以连接网络进行上网");
		}
	}
public class Demo9 {
	public static void main(String[] args) {
		Computer computer = new Computer();
		computer.input();//调用input方法
		computer.mouse();//调用mouse方法
		computer.internet();//调用internet方法
		
	}
}

运行结果如下:

本文含有隐藏内容,请 开通VIP 后查看