Java的接口是在你要创建类下面的那个选项选择interface
接口之间不能继承,即不能用extends,要用实现,即implements
接口里面有抽象方法的话,接口前面不用加abstract,直接写即可
同时,如果有子类实现抽象接口的话,也要进行方法重写,前提是接口里面有抽象方法
接口本身也是一个抽象的内容,不能进行实例化,这也就解释了为什么里面如果有抽象方法的话也不用在接口名前加abstract
但是可以通过多态的方式来实例化
抽象类在实现接口时可以不重写里面的方法,但是他具体的子类在继承他的时候还是要重写接口的抽象方法
接口的成员特点
接口中的成员变量默认被final修饰,所以接口里面没有成员变量,都是成员常量,且接口中的成员变量也是默认被static修饰的,因此可以通过接口名.变量名访问,而且还默认是public类型
接口里面不能有构造方法,因为接口主要是对行为进行抽象,所以他是没有具体存在的
在类中,每个类不管有没有继承关系,他都是有个object这个默认的父类,如果这个类有父类,那么他就是间接继承object这个父类,object这个类中就只有一个无参构造方法,这个可以不用写,默认有
接口里面也不能有非抽象方法的,即不能带有方法体,所以接口里面的方法都是抽象的,接口里面的方法默认带了 public abstract,所以我们可以不用写这个,他默认有
如果一个类既是继承自父类又是接口实现类,那么这么写
public Cat extends Animal implements Jump{
}
类与接口的关系
类实现多个接口时用逗号隔开
上图为继承一个类的时候实现多个接口
接口的多继承也是用逗号隔开
抽象类和接口的区别
所以,抽象类是对事物的抽象,而接口是对行为的抽象