Java初学——接口interface
程序员文章站
2024-02-17 17:02:04
...
一、定义
二、相关说明
举例一
举例二
三、接口与类的区别(个人理解)
一方面,有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。
另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又 没有is-a的关系,仅仅是具有相同的行为特征而已。例如:鼠标、键盘、打印机、扫描仪、摄像头、充电器、MP3机、手机、数码相机、移动硬盘等都支持USB连接。
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要…则 必须能…”的思想。继承是一个"是不是"的关系,而接口实现则是 “能不能” 的关系。
简单来说,接口是对功能的抽象,类是对本质的抽象。比如说,人和小猫、小狗都属于动物,存在is-a关系,可以用Person类、Cat类、Dog类分别继承Animal类。与此同时,人、猫、狗都具有吃东西的能力,因此可以将吃东西抽象为一个接口interface,让人、猫、狗去实现(implements)这个功能。所以,一个类只能直接继承一个类,但是可以实现多个接口(吃饭接口、说话接口等)。
接口和抽象类对比如下:
四、Java 8中关于接口的改进
public interface AA {
double PI = 3.14;
public default void method() {
System.out.println("北京");
}
default String method1() {
return "上海";
}
public static void method2() {
System.out.println(“hello lambda!");
}
}