抽象类与接口的区别与联系

抽象类与接口都可以定义一种访问的约束或规则


 

 

抽象类多用于在同类事物中有无法具体描述的方法的时候,为了使该同类事物中的该方法能够统一,不致混乱,可将该方法声明为抽象方法,同时则把该类声明为抽象类。

 

特点:同类事物中,各个子类对该方法的描述不一致,为了便于外界统一访问,则对该方法进行约束。

 


 

接口多用于不同类事物之间,定义不同类之间的通信规则。如某资源要访问多个不同的类,为了使该资源能统一进行访问,不致混乱,可以为这些要被访问的类定义一个统一的接口,则该资源就能通过该接口对这些不同的类进行统一的调用。

 

特点:为不同类的事物,定义一个便于外界统一访问的规则。或者说当不同类事物具有某种相同的功能,并且不同类对该功能的描述不一致时,则可将该功能定义为接口。

 


 

举例说明:

 

抽象类:所有的图形都具有一个求面积getArea()的方法,但是每个图形都有不同的描述,为了使外界(Outside)能统一访问该方法,则将该方法声明为抽象方法,并且包含在一个抽象类Shape中,并使其他的具体的图形类继承这个抽象类。

 

接口:电脑(资源)要访问mp3的存储器,U盘的存储器一起其他的一些外设的存储器(不同类的事物)。为了使电脑能统一访问,则定义一个接口(Storage),使要被访问的不同类型的存储器实现这个接口,这样电脑就可以统一调用了。也可以说是,不同的类型的存储器都有存储的功能,为了使外界(电脑),能够统一访问则建立一个接口,让不同类型的存储器都来实现这个接口,外界则通过接口调用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值