java之接口:interface
来源:互联网 发布:js产生随机数的函数 编辑:程序博客网 时间:2024/06/04 10:46
接口的引入:
比如抽象类中都是抽象方法,
abstract class AbsDemo{ abstract void show1(); abstract void show2();}
当一个抽象类的方法都是抽象类的时候,这时可以将抽象类用另外一种形式定义和表示,就是接口 interface。
定义接口的关键字不是class,而是interface。
对于接口当中常见的成员:而且这些成员都有固定的修饰符,
2、抽象方法 public abstract
interface Demo //编译后还是Demo.class文件{public static final int NUM = 4;int num = 4; //如果前面没有加public static final修饰,系统会默认加上public abstract void show1();public abstract void show2();void show(); //如果前面没有加public static final修饰,系统会默认加上}
接口的实现:
类与类之间是继承关系,类与接口之间是实现关系。
接口不可以实例化,只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。否则,这个子类就是一个抽象类。
interface Demo{public static final int NUM = 4;public abstract void show1();public abstract void show2();}class DemoImp implements Demo{public void show1(){}public void show2(){}}
接口的多实现:
在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。
一个类可以实现多个接口。
interface A{public void show();}interface B{public void show();}class TestImp implements A,B //多实现{public void show() //这个相当于实现了A和B接口的show(){}}
interface A{public void show1();}interface B{public void show();}class TestImp implements A,B //多实现{public void show1() //这个相当于实现了A和B接口的show(){}public void show(){}}
interface A{public void show1();}interface B{public void show();}class TestImp implements A,B //需要全部实现A和B中的函数{public void show1() {}public void show(){}}
一个类在继承另一个类的同时,还可以实现多个接口。
interface A{public void show1();}interface B{public void show();}class Q{public void method(){}}class TestImp extends Q implements A,B //需要全部实现A和B中的函数{public void show1() {}public void show(){}}接口的出现避免了单继承的局限性。
接口的细节:
类与类之间用继承extends
类与接口之间用实现implements
接口与接口之间可以是继承关系,而且接口可以多继承。原理是接口没有方法体,避免了多继承的不确定性。
interface C{void show();}interface D{void method();}interface InterfaceMutiExtends extends C,D{void function();}class newDemo implements InterfaceMutiExtends{//需要覆盖3个方法public void show(){}public void method(){}public void function(){}}
接口的特点:
接口是对外暴露的规则。
接口是程序的功能拓展。
接口的出现降低耦合性。
接口可以用来多实现。
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口之间可以有继承关系。
比如笔记本的USB口就是接口的设计理念。
接口的应用:
interface USB{public void open();public void close();}//U盘和鼠标这些设备和电脑的耦合性降低了。//U盘class UPan implements USB{public void open(){System.out.println("UPan open");}public void close(){System.out.println("UPan close");}}//鼠标class UMouse implements USB{public void open(){System.out.println("UMouse open");}public void close(){System.out.println("UMouse close");}} class BookPC{public static void main(String[] arg){useUSB(new UPan());useUSB(new UMouse());}//使用规则public static void useUSB(USB u) //接口类型的引用,用于接收(指向)接口的子类对象{u.open();u.close();}}输出:
1 0
- java之接口:interface
- Java杂谈之Interface接口
- Java学习笔记之接口Interface
- (2.1.11)Java之接口interface
- Java面向对象编程之接口(interface)
- Java-面向对象之接口interface
- C#之接口(Interface)
- java 接口 interface
- Java 接口Interface
- java 接口 interface
- Java接口interface
- Java -- 接口 interface
- 25 java interface (接口)
- JAVA中的接口interface
- java 接口 interface
- java接口 interface
- java接口(interface)
- Java 接口 interface
- JAVA程序中Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )问题的解决
- cocos2d - JS 读取 project.json 数据
- linux环境(二)python环境安装
- cookie应用三天免登陆
- 1508-张晨曦总结《2016年-11月-25日》【连续35天总结】
- java之接口:interface
- 机器人操作系统ROS Indigo 入门学习(2)——安装和配置你的ROS环境
- Android面试题(2016)luckyboy
- Apple Tree--树形DP
- 简述什么是Spring的AOP
- phpcms v9 数据表结构
- PCL最小分割算法
- JAVA多线程学习
- EasyUI IE8下很卡解决办法