Java接口抽象类

1 抽象类

1.1抽象类定义

如果一个类中没有包含足够的信息来描绘一个具体的对象,我们把这种类定义为抽象类,

1.2抽象类的特征

1)不能用来实例化对象,所以抽象类必须被继承才能够被使用,其他的功能和普通类相同。

2)一个类只能继承一个抽象类。

3)抽象类修饰符不能是private

4)抽象类不一定包含抽象方法,当抽象方法的类一定是抽象类。

5)构造方法,类方法不能声明为抽象方法。

6)抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非子类也是抽象类。

2 接口

2.1接口的定义

在软件工程中,接口泛指供别人调用的方法。

1)接口中所有方法不能具体实现。

2)在接口中所有方法必须是抽象类。

2.2接口的特征

1)接口中只定义抽象方法,这些方法默认都是public abstract的,在方法声明时可以省略修饰符。

2)在接口中定义实例变量,非抽象实例方法以及静态方法都是不允许的。

3)接口中没有构造方法,也不能被实例化。

4)一个接口不能实现另一个接口,但可以多继承其他接口。

5)接口必须通过类实现他的抽象方法

6)如果一个类不能实现完接口中的抽象方法,那么这个类我们应设计为抽象类。

7)不允许创建接口的实例,但是允许定义接口类型的引用变量引用实现该接口的类的实例。

2.3接口和抽象类的区别

语法层面上的区别

1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法。

2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。

3)接口中不能包含有静态方法,而抽象类可以有静态代码块和静态方法。

4)一个类只能继承一个抽象类,而一个类可以继承多个接口。

设计层面上的区别

抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。

抽象类作为很多子类的父类,他是一种模板式设计。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值