接口的含义:接口就是只有一个抽象方法和常量的“类”。但在java8以后可以有静态方法和默认方法。
接口使用interface关键字来声明一个类,同时接口不能创建对象。如果用接口来声明创建对象时只能用接口中的变量。
一个类实现接口时,必须实现接口中的所有抽象方法。
实现接口使用implements 关键字。
接口以具有多态性
接口和类之间的关系以及接口和接口之间的关系
(1)一个接口类可以继承多个接口类
eg :public interface 接口类 extends 接口类,接口类{
}
(2)一个类可以同时实现多个接口
eg: public class 类 implements 接口类,接口类{
}
(3)继承和实现同时存在是,先继承父类,再实现接口
eg: public class 类 extends 父类 implements 接口类,接口类{
}
接口中抽象方法,常量,静态方法,默认方法的使用
1.抽象方法
抽象方法含义:使用abstract关键字修饰一个类,这个类就是抽象类。
抽象方法的特点:(1)抽象类就是不能创建对象的类
(2)抽象方法就是没有方法体的方法
public abstract void 方法名();
但在接口中抽象方法会默认使用public abstract 修饰
所以在接口中直接写成:void 方法名();
2. 常量
常量使用final 关键字修饰
public static final 数据类型 变量名=数据;
在接口中常量会默认使用 public static final 修饰
所以在接口中直接写成:数据类型 变量=数据;
3.静态方法
使用static**关键字修饰
public static void 方法名(参数){
System.out.println(“内容”);
}
4.默认方法
使用 default来修饰(可以使用this)
public default void 方法名(){
System.out.println(“输出内容”);
}
例子
package pratice;
//导入接口A
import textinterface.A;
//子类继承父类并且实现接口
public class Student extends Person implements A{
private String major;
private String id;
//重写接口的抽象方法
@Override
public void text() {
}
@Override
public void text1() {
}
//方法
public void say1(){
System.out.println(“我是学生”);
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Student( String major, String id) {
super();
this.major = major;
this.id = id;
}
public Student() {
super();
}
//直接打印一个对象时,会默认调用toString方法,方法从object继承来
@Override
public String toString() {
return “Student [major=” + major + “, id=” + id + “]”;
}
}
运行并输出结果