抽象类与接口

他们之间在应用上的区别就不说了,主要何时用抽象类,何时用接口,在论坛上看到有人说的很通俗,做个记录,主便自己以后理解。

 

有两类物体,“汽车”和“动物”都有‘叫’这个动作。说明不同类型物体之间也有相同的动作。
我们可以定义他们的子类“轿车”和“狗”。

1.我们可以这样做:在“汽车”这个抽象类中定义抽象方法'叫'。在“动物”这个抽象类中定义抽象方法'叫'。他们的子类就可以有不同的'叫'动作。
2.我们也可以这样做:把'叫'这个动作抽象到一个接口中。“轿车”继承“汽车”并实现'叫'接口,他就具有自己的'叫'动作。“狗”也一样。

第2种的做法优势在于:如果我们的代码中有个方法叫"展示各种叫法",show(类型X x1){x1.叫();}
这时我们就可以把这个类型X声明为‘叫’接口类型,任何实现了‘叫’接口的类实例都可以作为参数传进来。但是我们用第1中做法时,就很难做到,这个类型X声明为什么类型好呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值