1.什么是接口?
●接口---使用interface关键字创建的java元素;
例如:public interface接口名称{}
interface接口名称{}
2.为什么要使用接口?
●抽象类为同一类的事物提供功能,不给具体实现,让它的子类根据自身的实际情况实现这个功能;
●接口为不同种类的事物提供功能,不给具体实现,让它的子类根据自身的实际情况实现这个功能
接口---[收费功能]
坐车---实现接口---重写收费功能
看电影---实现接口---重写收费功能
●一个java类只能继承一个父类[单继承],接口可以实现多个,可以克服类的单继承带来的问题。
3.接口如何实现?
●通过implements关键字实现一个或多个接口,如果有多个","分开;
格式:public class 类 implements 接口名1,接口名2...{}
4.接口中可以有哪些元素?
●接口中的变量都是使用public static final修饰的,public static final可以省略;
●接口中的抽象方法都是使用public abstract修饰的抽象方法,public abstract可以省略;
●接口中可以有静态方法;
5.接口的具体用法?
●接口中可以有抽象方法,可以一个抽象方法都没有;
●当一个普通的java类实现接口,就需要实现接口提供的所有抽象方法,也可以将这个普通的java类改成抽象类;
●抽象类也可以实现接口,不需要重写抽象方法;
●接口可以继承接口,而且是全部继承父类接口中的所有元素;
●接口不能通过new的形式创建对象的,可以通过这个接口的子类来创建接口对象[接口回调对象];
●java类中的方法参数是接口类型的时候,可以传递接口回调对象,也可以是接口的子类对象;
6.什么是接口回调对象以及基本特征?
●接口回调对象与上转型对象相似;
●上转型对象---子类对象赋值给父类变量;
●接口回调对象---接口的子类对象赋值给接口变量;
●基本特征:接口回调对象不能访问使用子类自己定义的变量和方法,只能访问接口提供的变量和方法,当访问接口中的抽象方法时,实际上访问的时被子类重写的抽象方法;
7.抽象类与接口的区别?
●抽象类是abstract class创建的元素,接口是使用interface创建的元素;
●抽象类为同一种类的事物提供功能,接口是为不同种类的事物提供功能;
●抽象类可以被extends继承一个,接口可以被implements实现多个;
●抽象类可以有实例变量,静态成员变量,构造方法,实例方法,静态方法,抽象方法,
接口中可以有静态常量,静态方法,抽象方法;
● 一个类只能继承一个抽象类,而一个类却可以实现多个接口;
●抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
●抽象类可以提供成员方法的实现,而接口中只能存在public abstract方法;
●抽象类只能单继承,接口可以多实现;