Java中的接口和抽象类

 

第一节 接口的概念

1 定义接口的必要性

提供统一的格式;

Java不支持多继承,只支持单继承。通过接口来实现多继承的目的。

多重继承是指一个子类可以有多个父类,该子类可以全部或部分继承所有直接父类的数据成员和成员方法。

Java出于安全考虑不支持多重继承而只支持单一继承,Java不允许多继承,但可以实现多个接口,并且在继承的同时可以实现接口。

第二节 接口的格式与实现

 

1 定义接口

格式:

[public] interface 接口名[extends  父接口名列表]{

      常量数据成员声明

      抽象方法声明

}

2 接口的注意事项

1)接口定义的关键字是interface,而不是class

2)修饰符public 用来指明任意一个类都可以实现此接口。如果一个接口声明中没有public 修饰符,则只能与本接口在同一个包中的类才能访问它;

3)接口体中的数据成员全是用final  static修饰的,即它们一定是给出标识符的常量,即使没有写出这两个修饰符也是如此,而且一定要给他们赋初值;

4)接口体中的定义的方法都是抽象方法,即默认是public abstract修饰符修饰,即使没有写出这两个修饰符也是如此;

5)接口没有构造器;

6)接口也具有继承性,可以通过extends来声明该接口的父接口,而且一个接口可以有一个以上的父接口,这点同类的继承不同。

3 接口的实现

Java语言中,实现接口可通过关键字 implements 来完成。

格式:

[public] class  类名  [implements 接口列表]{

 

}

4 抽象方法

一个抽象方法的定义,除了在方法名前加abstract 关键字外,该方法还不能有方法体,也就是说方法名后不能有花括弧“{}”。注意方法体为空和无方法体是两个概念,方法体为空指方法名后存在花括弧,只是花括弧中无内容。而无方法体是指方法名后就没有花括弧。

第三节 抽象类

 

1 抽象类

abstract 修饰符修饰的类,我们称为抽象类,在抽象类可以有抽象方法也可以没有抽象方法。

 

格式:

[修饰符] abstract class 类名{

 

}

2 定义抽象类的规则

1)一个抽象的定义是通过使用关键字abstract放置在表示类关键字class的前面来标识的。一般而言,一个抽象类至少应定义一个抽象方法,但并不是必须定义一个抽象方法,类体中也可以不存在抽象方法;

2)当子类继承了一个抽象类时,必须实现该抽象类中定义的全部抽象方法,否则必须被声明为抽象类;

3)当类实现了一个接口,但并没有实现该接口中的所有方法时,该类必须被声明为抽象类,否则编译会出现错误;

4)一个抽象类,由于其表明的是未完全实现的概念,因此不能被实例化(创建对象)。当试图调用一个抽象类的构造器来创建该类的一个实例时,会产生编译错误。

第四节 接口与抽象类的异同

相同:

接口和抽象类都有抽象方法,都代表定义层次上的抽象;

接口和抽象类都不能创建对象。

不同:

接口中没有构造器,抽象类中可以有构造器;

接口中只能有接口常量和抽象方法,抽象类中可以有抽象方法,也可以有非抽象方法;

接口中的抽象方法的修饰符不写,默认还是abstract public。而抽象类中的抽象方法必须写abstract关键字。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值