关于对java中接口的理解以及接口与抽象类的区别

接口的简单概述:

首先接口是功能的集合,并且只描述应该具备的方法,并没有具体的实现,具体的实现由接口的实现类(接口的子类)来完成,

这样将功能的定义和实现分离,优化了程序设计。

接口的定义:

定义类的class不同,接口定义时需要使用interface关键字。虽然声明时使用的为interface关键字的编译后仍然会产生.class文件

这点可以让我们将接口看做是一种只包含了功能声明的特殊类。

定义格式:

public interface 接口名 {

抽象方法1;

抽象方法2;

抽象方法3;

}

使用interface代替了原来的class,其他步骤与定义类相同:

注意:(1) 接口中的方法均为公共访问的抽象方法 (2)接口中无法定义普通的成员变量

类实现接口:

类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements

格式:

class implements 接口 {

重写接口中方法

接口中成员的特点:

(1)接口中可以定义变量,但必须用public static final修饰,所以接口中的变量也称为常量。

(2)接口中可以定义方法,默认使用public abstract修饰。

(3)接口不能创建对象,因为接口没有构造方法

(4)子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化,否则子类是一个抽象类。

接口和抽象类比较:

相同点:

(1)都位于继承的顶端,用于被其他类实现或继承;

(2)都不能直接实例化对象;

(3)都包含抽象方法,其子类都必须覆写这些抽象方法;

不同点:

(1) 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

 (2)一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

 (3)抽象类为继承体系中的共性内容,接口为继承体系中的扩展功能

(4)接口不能有构造方法,抽象类可以有(但是抽象类创建对象调方法没意义)

(5)接口不能有方法体,抽象类可以有(抽象类中可以有非抽象的方法)

(6)接口中不能有静态的方法(因为有静态的方法是不能重写的),抽象类中可以有。

(7)接口中的凡是变量必须用public static final修饰,而抽象类中没有要求。

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值