接口
来源:互联网 发布:什么网络兼职靠谱 编辑:程序博客网 时间:2024/06/12 21:04
接口语法
- [修饰符] interface 接口名 extends 父接口1, 父接口2, …{
//常量定义
//方法定义
} - class 类名 extends 父类名 implements 接口1, 接口2, …{
//类成员
}
- [修饰符] interface 接口名 extends 父接口1, 父接口2, …{
接口说明
- 接口的命名规则与类相同。如果修饰符是public,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包可见。
- 接口可以定义常量,不能定义变量。接口中的属性都会自动用public static final修饰,即接口中的属性都是全局静态常量。接口中的常量必须在定义时指定初始值。
- 接口中的所有方法都是抽象方法。接口中方法都会自动用public abstract修饰,即接口中只有全局抽象方法。
- 和抽象类一样,接口也不能实例化,接口中不能有构造方法。
- 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
- 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
- 一个类只能有一个直接父类,但可以通过implements实现多个接口。当类在继承父类的同时又实现了多个接口,extends关键字必须位于implements关键字之前。
接口表示一种能力
- 一个类实现了某个接口,就表示这个类具备了某种能力。
/** * 父类:门,抽象类 */public abstract class Door { public abstract void open(); //开门 public abstract void close(); //关门}/** * 接口:锁,实现开锁上锁 */public interface Lock { void lockUp(); //上锁 void openLock(); //开锁}/** * 拍照存档的接口 */public interface DoorBell { void takePictures(); //拍照存档功能}/** * 子类:防盗门类,继承父类,门类,并且实现锁和拍照存档的接口 */public class TheftproofDoor extends Door implements Lock,DoorBell { /** * 重写父类Door类的开门抽象方法 */ @Override public void open() { System.out.println("用力推,门打开了。"); } /** * 重写父类Door类的关门抽象方法 */ @Override public void close() { System.out.println("轻轻拉门,门关上了。"); } /** * 实现接口锁,上锁的方法 */ @Override public void lockUp() { System.out.println("插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙。"); } /** * 实现接口锁,开锁的方法 */ @Override public void openLock() { System.out.println("插进钥匙,向右旋转钥匙三圈,锁打开了,拔出钥匙。"); } /** * 实现接口拍照存档的方法 */ @Override public void takePictures() { System.out.println("铃……咔嚓……照片已存储"); }}
- 接口表示一种约定
/** * 接口:CPU */public interface CPU { /** * 获取CPU品牌 * @return CPU品牌 */ String getCPUBrand(); /** * 获取CPU主频 * @return CPU主频 */ double getCPUFrequency();}/** * 实现CPU接口并规定品牌和主频 */public class CPU1 implements CPU { @Override public String getCPUBrand() { return "Intel"; } @Override public double getCPUFrequency() { return 3.8; }}/** * 定义Computer类 */public class Computer { /** * 类型对象 */ CPU cpu; /** * 有参构造 * @param cpu CPU的对象 */ public Computer(CPU cpu){ this.cpu=cpu; } /** * 输出信息 */ public void showInfo(){ System.out.println("计算机的信息如下:"); System.out.println("CPU的品牌是:"+cpu.getCPUBrand()+",主频是:"+cpu.getCPUFrequency()+"GHz"); }}/** * 测试类 */public class TestComputer { public static void main(String[] args) { CPU cpu=new CPU1(); Computer computer=new Computer(cpu); computer.showInfo(); }}
阅读全文
0 0
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- springMVC学习笔记-要点概述
- mysql常见问题集锦
- H5总结(day01)
- animate.css基本使用
- Java 形参与实参
- 接口
- bionic linker代码分析(1)
- linux文件目录分析之/etc目录
- Spark 重分区coalesce和repartition,合并小文件
- 笔记:linux检测软件包是否安装方法
- Java与JSON之间的相互转换-3
- android 使用RecyclerView ViewType创建不同的item
- [Java面试八]Hibernate总结以及在面试中的一些问题
- PHP分页