1.接口的概念
接口是功能的集合,同样可看做一种数据类型,是比抽象类更加抽象的"类”。
接口只是描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)实现。这样将功能和定义和实现分离,优化了程序设计。
一切事物均有功能,即一切事物均有接口。
2.接口的定义
接口定义时需要使用interface关键字。
定义接口所在的仍然是.java文件,编译后产生.class文件。这点可以让我们把接口看做一种只是包含功能声明的特殊类。
定义格式:
public interface 接口名{
抽象方法1;
抽象方法2;
抽象方法3;
}
接口中定义的方法均为公共访问的抽象方法;
接口中无法定义普通的成员变量;
3.接口的实现类
A.类和接口的关系
实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。
其他类实现接口后,就相当于声明:“我应该具备这个接口中的功能”。实现类仍然需要重写方法以实现具体的功能。
4.接口中成员变量的特点
接口中可以定义变量,但是变量必须有固定的修饰符修饰,publiv static final 所以接口中的变量被称之为常量,其值不能改变。
例如:
interface Demo{
public static final int NUM = 3;
}
5.接口中成员方法的特点
接口中可以定义方法,方法有固定的修饰符, public abstract
子类必须覆盖接口中所有的抽象方法后,子类才能实例化,否则子类是一个抽象类
intface Demo{
public abstract void show1();
public abstract void show2();
}
//定义子类覆盖接口中方法。
class DemoImpl implements Demo{//子类实现Demo接口
//重写接口中方法
public void show1(){}
public void show2(){}
}
6.实现类还是一个抽象类
A: 接口的实现类
一个类如果实现类接口,有两种操作方法:
第一:实现类是非抽象类,就需要重写接口中所有的抽象方法.
第二:实现类也声明为抽象类,那么实现类可以不重写接口中的抽象方法。
7.类和接口的多实现
为什么定义接口:解决多继承的弊端 将多继承这种机制在java中通过多实现完成了
多实现的优点:
继承:多继承时,