接口

  接口:另一种定义数据类型的方式。与类的关系:
 相同之处:都有成员变量和成员方法
   也可以形成继承关系
 不同之处:接口中的属性都是常量(final)
   接口中的方法是抽象方法(没有方法体)


接口和抽象类很像,它们都具有如下特征:
 
接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
区别
设计目的不同:
·接口体现的是一种规范,类似于整个系统的“总纲”,它制定了系统各模块应该遵循的标准 。因此一个系统中的接口不应该经常改变
·抽象类作为多个子类的共同父类,体现的是模板式设计。抽象类可以被当成系统实现过程中的中间产品,这个中间产品已经实现了部分功能,但这个产品还不能当成最终产品,必须更进一步的完善,这种完善可能有几种不同方式。
用法不同

(1)接口里只能包含抽象方法(2)接口里不能定义静态方法

(3)接口里只能定义静态常量属性(4)接口不包含构造方法(5)接口里不能包含初始化块

(6)一个类可以实现多个接口
---------(1)抽象类可以包含普通方法

(2)抽象类可以定义静态方法

(3)抽象类既包含普通属性,也可以包含静态常量属性 (4)抽象类里构造方法不用于创建对象,是让子类调用(5)抽象类可以包含初始化块 (6)一个只能继承一个父类


引入接口的原因:Java只支持单重继承,每个类zhineng有一个超类。但实际应用中又时候需要多重继承就得使用接口,一个类可以实现多个接口。
创建接口——接口的格式:
[public]  interface  接口名 [extends 父接口1,父接口2,…]
{       [public][static][final]  数据类型   属性名=常量值;

       [public abstract](默认、可以不写)   返回值类型 方法名([形参表]);}
使用接口——实现接口:
[public]  class 类名 extends 基类 implements 接口1,…
{
      //类体
 }
 接口定义后不能直接创建对象,必须由类实现接口后创建类的对象。每个类只能继承一个基类,但可以实现多个接口。注意:类实现接口,就继承了接口中的所有成员变量和成员方法。
由于接口中的方法都是抽象的,因此实现接口的类必须重写这些方法,实现接口中的抽象方法时,除去掉关键字abstract外,方法头必须和接口定义中的方法头完全相同,并且public修饰符不能省略

强调:一个接口定义一个协定,实现接口的类必须遵守其协定。接口最适合为不相关的类提供通用功能,利用接口提供的方法,程序可以多态地处理这些完全不同的类的对象。


除了类可以继承接口,接口也可以继承接口
格式:[public] interface 子接口  extends  父接口1,父接口2,…
{
           //静态属性;
           //抽象方法;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值