接口

今天学习的是接口,生活中接口的例子随处可见上面有一个锁,可以方便我们理解:

Java定义一个接口test java定义一个接口例题_Java定义一个接口test


1.接口的定义

java中的接口是若干个完成某一特定功能的,没有方法体的方法和常量的集合。在java接口中定义的方法可以在不同的地方被实现,可以具有完全不同的行为。

接口定义和内定义类似,在java中要定义一个接口,需要使用int er face关键字,接口中可以声明一些方法和常量。

下面的代码是两个接口定义的例子:

public interface First interface{
 public void outPut(int param);
 }
 //定义程序使用的常量接口
 public interface My constants{
 }

1.如何定义一个接口
*

  • public class 类名
  • {
  • }
  • .java -> .class
  • public interface 接口名称
  • 接口内容
  • }
  • .java ->class


  • 2.接口内容
  • java7
  • 1.常量
  • 2.抽象方法

  • java8
  • 1.默认方法
  • 2.静态方法

  • java9
  • 1.私有方法


  • 使用接口的步骤
  • 1.定义一个接口
  • 2.实现一个接口,并且重写里面所有的抽象方法
  • 3.创建一个实现类
  • 今天学习的是默认方法 定义一个名称为MyInterface
•  public class Demo01Interface {
 public static void main(String[]args) {
 //错误写法 不能直接对接口进行new
 //MyInterface myinterface=new MyInterface();
 MyInterfaceImpl impl=new MyInterfaceImpl();
impl.methodA();
 impl.methodB();
 impl.methodC();
 impl.methodD();

}

//在任何java版本中,接口都是抽象方法

//public abstract 返回值类型 方法名称(参数列表);

//注意事项:
//1.抽象方法 修饰字必须是 public abstract
//2.关键字可以省略(ps:今天我们不可以省略)

public interface MyInterface {
 public abstract void methodA();
 abstract void methodB();
 public void methodC();
 void methodD();}
public class MyInterfaceImpl implements MyInterface {
 @Override
 public void methodA() {
 System.out.println(“实现抽象方法A”);
 }
@Override
public void methodB() {
	System.out.println("实现抽象方法B");
}
 @Override
 public void methodC() {
 System.out.println(“实现抽象方法C”);
 }
 @Override
 public void methodD() {
 System.out.println(“实现抽象方法D”);
 }
 }
 }

运行结果

Java定义一个接口test java定义一个接口例题_Java定义一个接口test_02


在使用接口时,需要注意以下几点。

(1)java接口不能被实例化。

(2)java接口中声明的成员自动被设置为public,因此,java接口不能声明私有成员。

(3)java接口中不能出现方法体。

(4)这个可以通过使用关键字extends继承他接口。

2.接口的实现和使用

一旦接口被定义一个或多个类便可以实现该接口。当一个类实现一个接口时,要在该类的定义中,包括implments句子,然后实现接口所定义的全部方法。

实现接口时需要注意:当一个类实现一个接口时,必须实现接口中定义的方法,否则该类必须声明为抽象类

public class Demo02Interface {
 public static void main(String[] args) {
 MyInterfaceDefaultA impla = new MyInterfaceDefaultA();
 impla.usb2();
 impla.usb3();
 System.out.println("=======");
MyInterfaceDefaultB implb=new MyInterfaceDefaultB();
	
	implb.usb2();
	implb.usb3();
}
}
public interface MyInterfaceDefault {
 public abstract void usb2();
 //讲usb2.0升级到3.0
 public default void usb3() {
 System.out.println(“这是usb3.0新增加的功能”);
 }}
public class MyInterfaceDefaultA implements MyInterfaceDefault{
 @Override
 public void usb2() {
 System.out.println(“我是笔记本电脑的usb2.0”);
 }}
public class MyInterfaceDefaultB implements MyInterfaceDefault{
 @Override
 public void usb2() {
 System.out.println(“我是笔记本电脑的usb2.0”);
 }}

运行结果

Java定义一个接口test java定义一个接口例题_java_03