面向对象(接口)
一、为什么学习接口?
因为接口可以让类实现一些本没有的功能

接口的语法:
public interface AnimalDao{ }
接口不是类,和类的结构有些相似,声明时把class换成interface
接口中的常量
int A=1;
省略了public static final关键字
接口中的抽象方法
void fun();
省略了public abstract
理解
接口就是不考虑所属关系,只考虑功能,大家都用统一的接口,实现规范和标准,比如type-c接口考虑到了双面可插性,他不用考虑是谁用这个接口,只考虑接口实现的功能,然后所有的手机,耳机,刮胡刀,插座,都实现了type-c接口,形成了一种规范和标准。
新特性
jdk1.8中接口可以写具体的方法
default 修饰的具体方法和static修饰的具体方法都可以省略public
default和static不能一起使用
小结
-
接口=常量+抽象方法
-
常量省略:public static final
-
方法省略:public abstract
-
-
接口的子类是具体的类,则必须实现implements接口的所有的抽象方法
-
接口可以使用多态,符合多态的所有特征
-
一个接口不能实现implements另一个接口
-
一个接口可以同时继承多个接口,打破了单继承的问题,实现类需要把所有多继承接口的抽象方法全部实现
-
抽象类实现implements接口,不需要重写接口的抽象方法
-
一个类可以同时继承和实现多个接口(顺序,先继承,后实现)
-
接口不能创建对象,因为没有构造方法,本质不是类
public class Zi extends Fu implements A,B{ }
接口和抽象类
相同点:
-
接口和抽象类都不能被实例化
-
接口的实现类和抽象类的(非抽象)子类,必须重写接口或抽象类中的抽象方法。
不同点:
-
接口只能定义抽象方法不能实现方法(jdk8之后提供了default方法,但应用不多),抽象类即可以定义抽象方法,也可以实现方法。
-
接口可以同时实现多个,但是只能继承一个父类。
-
接口强调的是功能,抽象类强调的是所属关系。
-
接口中的所有成员变量为public static final,静态不可修改,当然必须初始化。接口中的所有方法都是public abstract 公开抽象的。而且不能有构造函数。抽象类就是多了抽象方法的普通类,可以有构造函数,实例化,可以有普通类。
总结:

浙公网安备 33010602011771号