java-接口
来源:互联网 发布:网络视频产业发展趋势 编辑:程序博客网 时间:2024/06/10 16:20
接口的作用:
- 扩展功能
- 可以定义约束规范
- 程序的解耦
接口定义格式:
interface 接口名{}
接口注意事项:
- 接口是一个特殊的类。
- 接口的成员变量默认的修饰符为public static final。那么就是说接口的成员变量都是常量。
- 接口中的方法都是抽象的方法,默认的修饰符为public abstract。
- 接口不能创建对象。
- 接口是没有构造方法的。
- 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有的方法全部实现。
实现接口的格式:
class 类名 implements 接口名{}
类与接口之间的关系:
- 实现关系
类与接口要注意的事项:
- 非抽象类实现一个接口时,必须要把接口中所有的方法全部实现。
- 抽线类实现一个接口时,可以实现也可以不实现接口中的方法。
- 一个类可以实现多个接口。
接口与接口之间的关系:
- 继承关系
接口与接口之间要注意的事项:
- 一个接口是可以继承多个接口的。
案例:
武器接口:Weapon
public interface Weapon { /*public static final*/ //把数字值代表的武器赋给常量,通过常量名就可以知道武器类别 int TYPE_COLD=1; int TYPE_HEAT=2; int TYPE_NUCLEAR=3; /*接口的方法都是公共抽象的*/ /*public abstract*/ void kill(); //返回整数(武器的类别) int getType(); //得到武器的名字 String getName();}
接口实现类:
大宝剑类(Sword)实现武器(Weapon)接口
// Sword AK47 Lybpublic class Sword implements Weapon { public void kill() { System.out.println("耍剑"); } public int getType() { //冷兵器的数字常量 冷兵器代表1 return Weapon.TYPE_COLD; } public String getName() { return "倚天剑"; }}
接口实现类:
狼牙棒类(Lyb)实现武器(Weapon)接口:
public class Lyb implements Weapon{ public void kill() { System.out.println("耍棒"); } public int getType() { return Weapon.TYPE_NUCLEAR; } public String getName() { return "狼牙棒"; }}
接口实现类:
AK47类(AK47)实现武器(Weapon)接口:
public class AK47 implements Weapon{ public void kill() { System.out.println("耍枪"); } public int getType() { return Weapon.TYPE_HEAT; } public String getName() { return "AK47"; }}
变形金刚类:
public class Transformer { //武器成员变量 w //变形金刚使用一个武器接口,变形金刚要想使用武器接口,我们把武器接口定义成变成金刚的成员变量。 //引用类型的变量,没有进行赋值,默认为null值(空)。 private Weapon w; /* * 设置武器, 接收的武器参数,赋值给成员变量 w */ public void setWeapon(Weapon w) { //给成员变量 w 赋值 //赋的是从参数接收的武器对象 this.w = w; } //进攻方法 public void attack() { //判断是否接入武器 if(w == null) { System.out.println("用牙咬"); return; } String type = ""; switch(w.getType()) { case Weapon.TYPE_COLD: type = "冷兵器"; break; case Weapon.TYPE_HEAT: type = "热兵器"; break; case Weapon.TYPE_NUCLEAR: type = "核武器"; break; } System.out.println( "使用"+type+"武器"+w.getName()+"进攻"); w.kill(); }}
测试类:Test1
public class Test1 { public static void main(String[] args) { /* * 1. 新建 Sword 对象赋给 s * 2. 新建 AK47 对象赋给 a * 3. 新建 Lyb 对象赋给 l * 4. 新建 Transformer 对象赋给 t * 5. 让变形金刚 t 进攻 这时候没接武器用牙咬 * 6. 将武器 s 接入变形金刚的武器接口 * //给w接口设置接口实现类 * t.setWeapon(s); * 7. 让变形金刚 t 进攻 * 9. 将武器 a 接入变形金刚的武器接口 * 10. 让变形金刚 t 进攻 * 11. 将武器 l 接入变形金刚的武器接口 * 12. 让变形金刚 t 进攻 */ Sword s = new Sword(); AK47 a = new AK47(); Lyb l = new Lyb(); Transformer t = new Transformer(); t.attack(); t.setWeapon(s); t.attack(); t.setWeapon(a); t.attack(); t.setWeapon(l); t.attack(); }}
0 0
- Java接口 和 接口
- Java接口继承接口
- Java接口
- Java接口
- Java (接口)
- Java 接口
- java 接口
- java接口
- Java 接口
- Java接口
- Java接口
- java 接口
- java 接口
- JAVA接口
- java接口
- java接口
- JAVA接口
- java 接口
- java高级程序设计笔记(8章 BOM)
- 【Android - 基础】之Dialog分类及使用
- HTML学习之概述
- python onvif module
- sql server 事务和锁
- java-接口
- Linux System and Performance Monitoring(Memory篇)
- CTF dotNet逆向分析
- Android HandlerThread的用法
- 润乾填报中更新属性设置问题
- js 显示六个月日期
- 进程与线程的一个简单解释
- 获取Spring的上下文环境ApplicationContext的方式
- Linux System and Performance Monitoring(I/O篇)