Java接口特征与细节
2016-04-02 23:50
375 查看
接口
书面定义:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。
当一个抽象类里面全部是抽象方法时,且与继承类之间实现功能体现更强于所属关系,就可以定义为接口interface,更趋近于体现功能的集合特点
接口的特征:
对于接口当中常见的成员:而且这些成员都有固定的修饰符。
1.全局常量: public static final
2.抽象方法:public abstract
所以接口中的成员都是公共的权限.
3.只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。
否则,这个子类就是一个抽象类。接口是不能直接通过new来实例化的,没有具体实现的接口实例化也没有意义。
接口与普通类:
类与类之间是继承的关系
类与接口之间是实现关系,而且类的单继承可以有多实现(同时实现多个接口)
接口与接口之间是继承关系,而且接口的继承可以是多继承
(因为接口的方法并没有方法体,即便继承也不用实现方法)
接口在OOP的特点体现:
1.是对外暴露的规则
2.是对程序的功能扩展
3.接口的出现降低了耦合性
关于接口与抽象类的区别请看
接口与抽象类的区别详解
class Demo { void show() { System.out.println("父类方法"); } } interface Demo1 { public static final int NUM = 1; public abstract void method(); } interface Demo2 { double Circle_DIRECT = 2.45; //系统自动加上public static final void method();//系统自动加上public abstract int add(int a, int b); } class DemoImpl extends Demo implements Demo1,Demo2 { public void method() { System.out.println("实现接口1,接口2"); //实现具体方法,同时了覆盖两个接口中的方法 } public int add(int a,int b) { return a+b; }//必须覆盖所有实现接口的抽象方法,否则还是要定义为接口 } public class InterfaceDemo { public static void main(String[] args) { DemoImpl d = new DemoImpl(); d.show(); d.method(); System.out.println(d.add(1,2)); System.out.println(d.NUM); System.out.println(Demo1.NUM); } }
相关文章推荐
- fastjson处理接口时的一个问题
- 局域网与广域网接口标准
- RJ-45接口信号定义
- DVI 视频接口图文解析
- 如何设置域名接口
- 通过C#实现自动售货机接口
- C#中IEnumerable接口用法实例分析
- C#中实现判断某个类是否实现了某个接口
- C#隐式/显示实现接口方法详解
- C#实现两接口中同名方法实例分析
- 详解C#中的接口属性以及属性访问器的访问限制
- C#中的ICustomFormatter及IFormatProvider接口用法揭秘
- C#接口实现方法实例分析
- 基于C# 中可以new一个接口?的问题分析
- C#抽象类和接口的区别分析
- 详细解读PHP中接口的应用
- php单一接口的实现方法
- C#中类与接口的区别个人总结
- C语言接口与实现方法实例详解
- 学习JavaScript设计模式(接口)