接口本质上就是一种类。而且是特殊的抽象类。这也是为何可以省略abstract关键字的原因。就好像水管的接口一样。必须定义一样的标砖,才能接上,不然就容易漏水。更多的是为了多种类之间进行数据的交流。也是为了多个团队,多个程序员之间能够进行无缝连接。
而且也因为java只支持单继承。可现实却是存在多继承,就好比父子,一个儿子却是只能有一个爹,但是也可以有一个母亲。而且继承不一定是受血缘的限制。可以继承财富,性格,思想,习惯,能力等等,这样继承就会多种多样,这也是接口出现的原因。他是一种能力。比如他具有了某种能力。就可以具有多种多样的能力。
所以未来可能会出现语言的改进。接口成为常态,单继承的类只是一种特殊的接口。胡乱猜测。
public abstract class AbstractClass //里面至少有一个抽象方法
{
public int t; //属性
public abstract void method1(); //抽象方法,抽象类的子类在类中必须实现抽象类中的抽象方法
public abstract void method2();
public void method3(); //非抽象方法
public int method4();
接口(interface)的定义方式如下:
public interface Interface
{
static final int i; //接口中不能有普通数据成员,只能够有静态的不能被修改的数据成员,static表示全局,final表示不可修改,可以不用static final 修饰,会隐式的声明为static和final
public void method1(); //接口中的方法一定是抽象方法,所以不用abstract修饰
public void method2(); //接口中不能赋予方法的默认行为,即不能有方法的具体实现