java中interface使用

1.在C++中,类可以多重继承,一个类可以有好几个父类,但是在java中,类是不允许多重继承的,为了多重继承,java中出现了接口(interface)的定义。接口是可以多重继承的,接口的关键词是:interface。

如:

定义接口A:

interface A

{

...

}

定义接口B:

interface B

{

...

}

此时,接口C可以继承A和B:

interface C extends  A,B

{

...

}

同时类也可以同时实现多个接口

如:

class Test implements A,B

{

...

}

2.接口中只有2中类型的成员,一种是数据成员,一种是方法成员。其中数据成员都是final类型的,是常量,在定义的时候要设置好的,以后不能修改。方法成员全是抽象方法,实现接口的类要全部实现这些抽象方法。

3.接口不能直接实例化,只能通过其子类进行实例化。

 1 interface Usb
 2 {
 3     public    abstract void start();
 4     public  abstract void stop();
 5 }
 6
 7 class Mp3 implements Usb
 8 {
 9     public void start()
10     {
11         System.out.println("Mp3 start");
12     }
13
14     public void stop()
15     {
16         System.out.println("Mp3 stop");
17     }
18 }
19
20 class Disk implements Usb
21 {
22     public void start()
23     {
24         System.out.println("Disk start");
25     }
26
27     public void stop()
28     {
29         System.out.println("Disk stop");
30     }
31 }
32
33 class Computer
34 {
35     public void work(Usb u)
36     {
37         u.start();
38         u.stop();
39     }
40 }
41
42 public class InterFaceInstanceOf {
43
44     /**
45      * @param args
46      */
47     public static void main(String[] args) {
48         // TODO Auto-generated method stub
49        //通过其子类进行实例化操作
50         Usb uD = new Disk();
51         Usb uM = new Mp3();
52
53         Computer d = new Computer();
54         Computer m = new Computer();
55
56         d.work(uD);
57         m.work(uM);
58
59     }
60
61 }

4.接口实际上就是定义出了一个”统一的标准“

时间: 2024-10-18 08:50:37

java中interface使用的相关文章

+Java中的native关键字浅析(Java+Native+Interface)++

JNI是Java Native Interface的 缩写.从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了. 使用java与本地已编译的代码交互,通常会丧失平台可移植性.但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件.操作系统进行交互,或者为了

java中的接口interface

关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 接口中的成员 接口中的所有的成员,缺省情况下都是public的,也必须是public,无论是方法,还是字段.因为接口就是规定了API,如果实现的类不公开接口中的API,怎么能叫API呢? 接口中可以 定义方法 和 字段. 接口中的字段,缺省(也是必须)为 public static final  .在定义的接口中必须初始化,因为是fi

【Java关键字-Interface】为什么Interface中的变量只能是 public static final

三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口.接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围: static:如果变量不是static的,那么接口必须实例化才可以访问自己的变量,接口不能被实例化,故非static的变量是无效的: final:如果变量不是final的,而方法是abstract的,因此接口中的方法又不可以修改变量值,虽然可以直接修改静态成员变量,但所有实现类对应的值都被修改了,此做法等同于抽象类,故需要fina

OC中的@interface和java中的区别以及 @implementation @protocol

java 在java中的interface是‘接口’的意思,而java的类声明用class,即接口用interface声明,类是用class声明,是两个独立的部分. 只有在类声明要实现某个接口时,他们两者才建立了关系,例如: [html] view plaincopyprint? interface AI{ void print(); }; class AC{ }; 这时候,AI和AC是独立存在,AC不会因为没有和AI建立关系而编译错误,将AC做以下修改后,AI才和AC建立了关系,AC必须实现A

Java 中 modifer 'public' is reduntant for interface methods

http://androidren.com/index.php?qa=322&qa_1=java-%E4%B8%AD-modifer-public-is-reduntant-for-interface-methods 常常会看到接口上写了public修饰方法,然后IDE,比方:Eclipse或者IDEA常常会提示public是多余的.后来就查了一下.java默认接口的方法是public和abstract的,所以真不是必需.同一时候,假设你使用private或者protected都会报错. 所以,

Java 中 modifer 'public' is reduntant for interface methods

http://androidren.com/index.php?qa=322&qa_1=java-%E4%B8%AD-modifer-public-is-reduntant-for-interface-methods 经常会看到接口上写了public修饰方法,然后IDE,比如:Eclipse或者IDEA经常会提示public是多余的.后来就查了一下.java默认接口的方法是public和abstract的,所以真没必要.同时,如果你使用private或者protected都会报错. 所以,安心删

【juincen】Java中的接口interface类比js中的回调函数

前几天在左讯飞语音的时候,无意间意识到java中的接口和js中常用的回调函数有点类似,今天在这儿整理一下思路. interface,Java中的接口,为什么会有这个东西. 一,预留声明 比如两个程序员A和B,A要写一段程序,其中需要调用到B写的程序.这时候A可以写一个接口: public interface Demo{ void deal(); } A要调用的方法先“预留声明”在接口里:deal 然后B去完善这个接口,B写了一个实现类实现了这个Demo接口. A在自己的业务逻辑里面只用调用接口的

Java中定义常量方法及建议(Class/Interface)

Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100; ...... } 采用“类.常量名”方法进行调用.需要私有化构造方法,避免创建该类的实例.同时不需让其他类继承该类. 如果多处需要访问工具类中定义的常量

`Java`中`abstract class`与`interface`区别

abstract class Java中允许使用abstract修饰符声明方法,此时只定义方法但是不实现方法(abstract修饰的方法没有主体,只有一个签名和一个分号). 以下是abstract方法和这些方法所在的abstract类相关的规则: 只要类中有一个abstract方法,那么这个类本身就自动成为abstract,而且必须声明为abstract class,否则会导致编译错误; abstract class无法实例化; abstract类的子类必须覆盖超类的每个abstract方法,并