接口(interface)

接口(interface)是Java所提供的另一种重要技术,它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有以下两点不同:

1、接口里的数据成员必须初始化,且数据成员均为常量。
2、接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”


接口的定义格式如下:

interface 接口名称 // 定义抽象类
{
final 数据类型成员名称 = 常量; // 数据成员必须赋初值
abstract 返回值的数据类型 方法名称(参数…); // 抽象方法,注意在抽象方法里,没有定义方法主体。
}


在java中接口是用于实现多继承的一种机制,也是java设计中最重要的一个环节,每一个由接口实现的类必须在类内部复写接口中的抽象方法,且可自由地使用接口中的常量

既然接口里只有抽象方法,它只要声明而不用定义处理方式,于是自然可以联想到接口也没有办法像一般类一样,再用它来创建对象。利用接口打造新的类的过程,称之为接口的实现(implementation)


接口的实现:

class 类名称 implements 接口A,接口B // 接口的实现
{

}

接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口,派生出的接口称为派生接口或子接口。通过这种机制,派生接口不仅可以保留父接口的成员,同时也可加入新的成员以满足实际的需要。

同样的,接口的扩展(或继承)也是通过关键字extends来实现的。有趣的是,一个接口可以继承多个接口,这点与类的继承有所不同

接口的扩展:

interface 子接口名称 extends 父接口1,父接口2,…
{
… …
}

例子:

interface A
{
	int i = 10 ;
	public void sayI() ;
}

interface E
{
	int x = 40 ;
	public void sayE() ;
}

	// B同时继承了A、E两个接口
	interface B extends A,E
	{
		int j = 20 ;
		public void sayJ() ;
	}
	
	// C继承实现B接口,也就意味着要实现A、B、E三个接口的抽象方法
class C implements B
{
	public void sayI()
	{
		System.out.println("i = "+i);
	}
	public void sayJ()
	{
		System.out.println("j = "+j) ;
	}
	public void sayE()
	{
		System.out.println("e = "+x);
	}
}
	 
class TestInterfaceDemo2{
		public static void main(String[] args)
		{
			C c = new C() ;
			c.sayI() ;
			c.sayJ() ;
		}
}
从此程序中读者可以发现 与类的继承不同的是,一个接口可以同时继承多个接口,也就是同时继承了多个接口的抽象方法与常量




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值