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.接口不能直接实例化,只能通过其子类进行实例化。

 interface Usb
{
public abstract void start();
public abstract void stop();
} class Mp3 implements Usb
{
public void start()
{
System.out.println("Mp3 start");
} public void stop()
{
System.out.println("Mp3 stop");
}
} class Disk implements Usb
{
public void start()
{
System.out.println("Disk start");
} public void stop()
{
System.out.println("Disk stop");
}
} class Computer
{
public void work(Usb u)
{
u.start();
u.stop();
}
} public class InterFaceInstanceOf { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//通过其子类进行实例化操作
Usb uD = new Disk();
Usb uM = new Mp3(); Computer d = new Computer();
Computer m = new Computer(); d.work(uD);
m.work(uM); } }

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

java中interface使用的更多相关文章

  1. java中interface的详解

    JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如:    interface IA{ }  public interface: 公开接口  与 ...

  2. Java中interface是否继承Object类

    首先我们从C++说起, c++可以多继承.也就是一个类型 --- class,可以继承自2个以上的父类型.多继承导致一个问题,很多人知道.例如,如果类型B,类型C均继承自类型A.然后类型D继承自类型B ...

  3. java中interface 的特性

    有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值的定义的集合.从本质上讲,接 ...

  4. Java中interface和abstract class的区别和联系

    interface: interface类似于class,但是只包含函数(只规定参数.函数名.返回类型,不规定函数体).目的是用来建立类和类之间的一种“协议”.一个类可以实现多种接口,来模拟多重继承. ...

  5. java中interface的完整表述

    我用一个工具:java Decompiler反编译工具查看jar包源码的时候,出现了以下代码: public abstract interface AbsITest{} 在网上搜索了一下: 我对这种情 ...

  6. 关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考

    原文链接 http://blog.csdn.net/voo00oov/article/details/50433672 java中interface中定义变量都是"public static ...

  7. java中常量定义在interface中好还是定义在class中

    Java中interface中定义变量都是"public static final" 类型的, 也就是常量, 因此很多人在interface定义常用的常量,除此之外单独定义一个cl ...

  8. Java中常量定义在interface和class的区别(转)

    最终结论:定义常量在interface和class中其实都行,关键是看你的设计和个人爱好. Java中interface中定义变量默认都是"public static final" ...

  9. [转]Objective-c中@interface、@implementation、@protocal

    原处:http://blog.csdn.net/l271640625/article/details/8393531 以下Objective-c简称OC 从事java开发的程序员们都知道,在java中 ...

随机推荐

  1. Python中断多重循环的几种思路exit_flag

    常见方法 II. 跳出多重循环 事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数.利用笛卡尔积.利用调试. 写成函数 在Python中,函数运行到re ...

  2. MySQL 5.7.18 主从复制 Error1205

    从库报 error 1205 1.mysql报错信息 [root@slave2(35.102) ~]# mysql -uroot -p Enter password: Welcome to the M ...

  3. 使用CSS3 Flexbox布局

    Flexbox(中文版本可以点击这里)的布局是一个用于页面布局的全新CSS3模块功能.它可以把列表放在同一个方向(从左到右或从上到下排列),并且让这些列表能延伸到占用可用的空间.较为复杂的布局可以通过 ...

  4. 新学一招,使用热门的Git

    1.安装Git 1.本文所用版本为Git-1.8.0-preview20121022.exe  , http://msysgit.googlecode.com/files/Git-1.8.0-prev ...

  5. angualr 之 $$phase

    对于angular, $$phase 是 作为angular 内部状态表示位,用来标示当前是处于哪个阶段. 用有的阶段有 $digest $apply 在使用的是例如你想调用scope.$apply的 ...

  6. 【转】C#事件、委托、回调的用法与区别

    原文地址:http://blog.csdn.net/huang9012/article/details/38753305 事件包括:事件发送者.事件接收者和事件处理程序.关于事件,我们首要知道的是事件 ...

  7. django使用mysql

    django使用mysql需要注意在project目录下的__init__.py 中添加:import pymysql pymysql.install_as_MySQLdb()

  8. mysql 随机查询 记录集

    有时候需求需要随机从数据库查询若干条记录集,网上搜了一下,几篇博文都是些重复的.....不知道他们谁抄的谁的,这里除了介绍提供一种笔者自己想到的方法,本质都是利用mysql 的rand() 第一种方法 ...

  9. Javascript 键盘事件

    window.document.onkeydown = function (e) { var evt = window.event || e;//兼容性处理 var keycode = evt.key ...

  10. Eclipse修改tomcat初始分配空间参数

    正常启动tomcat后,运行报java.lang.OutOfMemoryError: PermGen space,查阅是tomcat内存溢出,也就是分配给tomcat的永久内存小了点 在Eclipse ...