初学Java,许多东西还不是很理解。其中接口是最让我感到困惑的一个概念。
如果说类可以轻松的通过构造方法和类方法在Main中设定各种属性以及各种不同的功能的话,接口似乎就更偏向单纯的提供方法结构了。
那么我的疑问是,接口是否也有关联对象及其属性的功能?
假如我用对象与类,可以一次性构造出一个卡牌的所有基本属性,比如卡牌名称,卡牌大小,卡牌能力等等(或者人物属性,比如人物名称,人物年龄,人物性别等等)。那么使用接口,是否也能做到这一点呢?因为书中与许多网站上都说接口与抽象类非常相似,只是没有构造方法。而抽象类是能做到以上我所说的那些,只是需要一个可以实例化的类。但是接口,我实在是想象不出来如何才能做到这几点。
望各位前辈和大神们能指点迷津一下!感激不尽!
java是面向对象编程语言,类和接口都是面向对象的抽象化。类是对对象所有属性的抽象,接口是对对象行为的抽象。
即假设有个动物类,那么类属性可以包括年龄,体重等对象的属性。其对应的对象接口,应该是睡觉、奔跑等动物行为,然后动物类实现行为接口,但是一般类过于简单的话,我们都不会单独去写一个接口,而是直接在动物类里面写行为方法。你可以这样理解。
即纯粹的类应当是一个只含有属性的类,并且实现行为接口。类似于C的数据接口体,只有属性。接口则是只有对象行为,不包含属性。
看了你两篇提问,推荐你去读《java编程思想》对象导论那一章节,仔细读完前5小节你应该能理解很多。
1.接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。简单说就是,实体和外界沟通的入口,这个入口与内部操作分离,也就是内部操作与外部沟通分离
2.我们将需要解决的问题本身的一些实体抽象为对象,比如电商网站,有商品、顾客、商家、订单等等对象
3.类也可以说是类型,指包含由各特殊的事物或现象抽出来的共通点的抽象概念,也就是说抽象出来的就是类型。因为类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以实际上一个类就是一个数据类型
4.每个对象都是某个类的一个实例
5.接口、对象、类,这些概念被创造的目的就是它们的字面意思,设计出来的功能也是为了满足这些需求,所以非要用接口去做类的事情那可想而知,当然不能做到。
6.接口在java中的机制就是完全抽象化的,接口和抽象类并不相同,抽象类并不是,所以你可以使用抽象类完成类在做的事情这很符合逻辑。
7.最后一点,接口可以放下,遇到了使用接口的项目的时候你会明白为什么要有接口,面向对象的概念还需要多点理解