类都是用来描述对象的?

    在面向对象语言Java中,所有的对象都是通过类来描述,但是类都是用来描述对象的吗?

    我们会想到什么呢?Yeah,它就是抽象类!如果一个类并没有足够的信息去描述一个具体的对象,那么,就应该把类定义为抽象类。比如,当我们需要用一个类来定义一组具有共同属性和行为,但是又不需要给出行为的具体实现,这时,我们可以将此类定义为抽象类。抽象类往往用来表示我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。这时,我们就可以得出一个简单的结论:抽象类的作用就是用来定义一些共同的属性或行为但又不需要不用给出具体的实现。这时,你会联想到什么?

    接口!接口的作用就是用来定义一些实现类必须实现的行为。其实,一个接口就是一个只存在抽象方法或静态常量的抽象类。在关系方面来说,类的继承是强是关系(意思就是,你必须是以我为父类所衍生的子类),例如:人,必须是动物的一种。而接口的实现则是弱是关系(意思是,你是我的一部分,不是我的子类,就像眼睛是动物的一部分)。

    我比较喜欢使用接口,而不喜欢使用继承。天知道,这个类什么时候还要继承另外一个类!Java只允许单继承,也就是一个类只能有一个父类,而不能有很多父类,就像在现实生活中,你只可能也必须只有一个亲生父亲,而你的父类可以有很多个孩子。而接口就不存在这种限制,就好像你要我去一个地方,你管我是走路、挤公交、打的或者是飞机等等,我只要去到那里就成。当然,我可以走路走一段,挤公交挤一段,另外一段可能搭飞机去了。相对于类的继承来说,接口具有很大的灵活性,因为一个类可以实现多个接口。灵活,意味着难控制,也意味着可移植性强。工厂模式也不过如此吧。

    做事,都有要留有余地,做人,就更要有余地。其实,接口也体现了这个道理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值