学习java的第12天

接口

今天学习的是接口,生活中接口的例子随处可见上面有一个锁,可以方便我们理解:
在这里插入图片描述
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”);
}
}
}
运行结果
在这里插入图片描述
在使用接口时,需要注意以下几点。
(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”);
}

}
运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值