前言
接口是Java中的一个重要的类型,实际项目开发中会大量使用到接口,也称为:面向接口编程,本章将详细介绍接口的概念和使用以及内部类。
接口
接口是什么
生活中的接口如电脑上的USB接口,规范了接口的形状、尺寸等,只要符合该规范的设备就可以连接上去。

程序中的接口是一套规范,规定了方法的定义,只要是实现了该接口的类必须按照接口的规范来定义。
使用接口
定义接口的语法:
public interface 接口名{静态常量的定义;方法的定义;}定义接口要注意:
实现接口
public class 类名 implements 接口名{具体方法的实现}实现接口要注意:
接口在开发中的意义
default关键字
Java1.8的新特性,被default定义的方法可以有默认的实现。
public interface Person {//给接口方法默认的实现default void eat(){System.out.println("在吃饭!!");}void walk();}实现类不强制要求实现带default的方法。
接口与抽象类的异同
接口和抽象类的区别是常见的面试题相同点:
不同点:
内部类
内部类就是在类里面定义的类。Java的内部类包含:
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
成员内部类
和成员变量(属性)、成员方法同级的,都是属于某一个对象所有的。语法:
class 外部类{class 内部类{...}}特点:
- 一般只在外部类的里面使用
- 成员内部类和类的属性和方法同一级别。
- 属于类的对象,在创建每个对象时加载到内存
静态内部类
成员内部类加上static,就是静态内部类语法:
public class 外部类{static class 内部类{}}和成员内部类的区别:
局部内部类
在方法中定义的类,只能在当前方法中使用,方法调用时加载类到内存中。语法:
class 外部类{public void test(){class 内部类{}内部类 对象 = new 内部类();}}匿名内部类
一个没有名字的内部类,创建类的同时创建了对象。应用场合:接口或抽象类的实现类只需要使用一次,代码是一次性的。语法:
new 接口/抽象类(){实现方法};实现USB案例
//Usb接口interface Usb{void connect(); //连接void charge(); //充电}//匿名内部类实现接口Usb usb = new Usb(){public void connect(){System.out.println("Test2测试连接");}public void charge(){System.out.println("Test2测试充电");}};usb .connect();usb .charge();和一般类的区别:
面试题:在?处填写什么可以在控制台输出30,20,10。
class Outer { public int num = 10; class Inner { public int num = 20; public void show() { int num = 30; System.out.println(?); num System.out.println(?); this.num System.out.println(?); Outer.this.num } } } class InnerClassTest { public static void main(String[] args) { Outer.Inner oi = new Outer().new Inner(); oi.show(); } }结束
留两个作业: