学习目标:
了解Java接口
学习内容:
1、 接口概念
2、 理解接口
学习步骤:
1、接口的概念
一个接口只有方法的特征没有方法实现,因此这些方法可以在不同的地方被不同的实现,而这些实现可以具有不同的行为(功能)。接口可以理解成一种特殊的类,里面全部都是由全局变量和公共的抽象方法所组成。他是解决Java无法受用多继承的一种手段,但更多的作用是制定标准的。
2、理解接口
我们知道,如果某个设备需要向电脑中读取或者写入某些东西,这些设备一般都是采用USB方式与电脑连接的,我们发现,只要带有USB功能的设备就可以插入电脑中使用了,那么我们可以认为USB就是一种功能,这种功能能够做出很多的事情(实现很多的方法),甚实USB就可以看做是一种标准,一种接口,日要实现了USB标准的设备我就认为你已经拥有了USB这种功能。(因为你实现了我USB标准中规定的方法)。
3、定义接口的步骤
1、定义一个接口
2、实现一个接口,并且重写里面所有的抽象方法
3、传建一个实现类
例题1:
package com.hg.day12.demo01;
//在任何Java版本中 接口都是抽象方法
//public abstract 返回值类型 方法名称(参数列表);
//注意事项:
// 抽象方法 修饰字必须是 public abstract
// 关键字可以省略(ps:今天不能省略)
public interface MyInterface {
public abstract void methodA();
abstract void methodB();
public void methodC();
void methodD();
}
package com.hg.day12.demo01;
import com.hg.day12.demo01.MyInterface;
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");
}
}
package com.hg.day12.demo01;
//1、如何定义一个接口
//public class 类名 {}
//public interface 接口名称{接口内容}
//2、接口内容
// java7常量
// java7抽象方法
// java8默认方法
// java8静态方法
// java9私有方法
//使用接口的步骤
//1、定义一个接口
//2、实现一个接口,并且重写里面所有的抽象方法
//3、创建一个实现类
public class Demo01Interface {
public static void main(String[] args) {
//MyInterface myinterface = new MyInterface();
//错误写法 不能对接口实例化
MyInterfaceImpl impl = new MyInterfaceImpl();
impl.methodA();
impl.methodB();
impl.methodC();
impl.methodD();
}
}
运行结果:
例题2:
package com.hg.day12.demo02;
public interface MyInterfaceDefault {
public abstract void usb2();
//将USB2.0升级到3.0
public default void usb3() {
System.out.println("这是USB3.0新增加的功能");
}
}
package com.hg.day12.demo02;
public class MyInterfaceDefaultA implements MyInterfaceDefault{
@Override
public void usb2(){
System.out.println("我是笔记本电脑的USB2.0");
}
}
package com.hg.day12.demo02;
public class MyInterfaceDefaultA implements MyInterfaceDefault{
@Override
public void usb2(){
System.out.println("我是笔记本电脑的USB2.0");
}
}
package com.hg.day12.demo02;
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();
}
}