格式:public interface 接口名{ //接口只能创建这些,(传统的)
//成员变量(常量),但一般在接口中final会自己加不用自己主动添加
//成员方法(抽象方法)加不加public abstract都可,java会默认帮我们处理
}
注意:接口不能创建对象;接口是用来被类实现的,实现接口的类称为实现类。
格式:修饰符 class 实现类 implements 接口1,接口2,接口3.。。{
//实现类指创建的新类的类名,作为实现类
接口也可以继承多个接口
}
一个类可以实现多个接口(接口可以理解为干爹),实现类实现(多个)接口,必须重写完全部接口的全部抽象方法,否则,实现类需要定义为抽象类
相当于接口是一个容器用来装方法,常量的定义
实现类进行重写来实现代码内容
接口进行实现后可以通过实现类和接口来进行创建一个多态对象也来获取方法
实现类自己也是可以正常创建对象的
如果一个类的父类和接口(干爹)都有同一个方法
那子类的到底调用的是父类的、还是接口的方法?
先说结论为敬:不Override重写接口时父类优先;Override重写接口时接口优先。
解决默认方法冲突(注意注意注意默认方法!!!)
默认方法是在接口中
接口的好处:
接口是多继承的,弥补了类单继承的不足,使一个类可以继承多个接口。
让程序可以面向编程,这样程序员就可以灵活方便的切换各种业务的实现。
在进行一个类继承之后仍可以使用 implements来继承接口来实现
一般接口会单独创建;上述图只是为了方便展示
进行方法实现后就可以用接口和实现类共同创建对象
格式:继承中的所要其功能的接口的名称 对象名称=new 实现类的名称();
如:在上述图片中获取A中的功能,特性为A a=new OO( );
A是接口,OO是实现类