java面向对象 接口和实现类_第三篇 (面向对象)③: 关于Java抽象类和接口概念和实现...

翻看Java的API文档有很多接口,也有很多类前面用abstract修饰,这些是什么意思呢?

接口我们从现实可以理解成连接2个不同的事物或者设备,例如插排给你提供很多接口,电脑后面的网线插口,USB鼠标插口等等.充电器插入插排可以充电,网线插入网线插口就可以上网,鼠标插入USB插口就可以移动箭头,谁去调用接口谁就实现接口里面的功能.这就是接口概念。那么Java中的接口是什么意思呢,顾名思义在Java中我们也把很多方法放在接口里面,我们不去实现它,谁继承了这个接口谁就去实现这个接口里面的功能.

例1-1:  (定义接口使用关键字interface)

interface eat{ void show(); }//每种生物都具有吃这个功能我把它定义成接口

class cat implements eat {//继承接口使用关键字imlements,猫这个类继承了eat接口并要实现接口中的所                                                                  有方法

void eat(){

System.ou.peintln("小猫要吃鱼!");

}

}

可能有人会疑惑上面例子我们为什么要使用接口呢,直接在cat类中直接实现show方法,接口eat不就不用定义了么,不错这种方式是可以实现这个功能,但是面向对象思想不提倡这种做法,这种方式是面向过程思想,要知道Java有非常多的类,这么多类又要实现非常多的方法,如果我们把所有实现方法都直接放在类中无疑逻辑上显得很混乱,不利于理解和查阅文档。Java把很多类相似的共性抽取出来,把这个类共性方法放在一个接口中,让这些类继承这个接口并实现接口中所有方法,接口命名见其名辩其意。这样我们就可以直接查阅这个接口中都有哪些方法,哪些类分别实现了这个接口的方法.

下面说抽象类(abstract)抽象类顾名思义就是抽象的,比我们想到火车,汽车,自行车脑海中都有个清晰的画面,但是如果不去实体化直接想车这个东西,我们都不知道它到底是什么车。所以我们把具有抽象概念的类定义成抽象类,抽象类的类名前面用abstract修饰,有抽象类当然也有抽象方法,抽象方法跟抽象类相同方法名前面用

abstract修饰,抽象方法只能有方法名,不能有具体实现,实现抽象方法交给继承这个抽象类的子类去实现。

例1-2:  abstract class car{//抽象类

abstract void show();//抽象方法

}

class train extends car{//继承类使用关键字extends,火车类继承抽象类车必须实现类车中                                                                            所有的抽象类

void show(){

System.out.println("我是火车")

}

}

class bicycle extends car{

void show(){

System.out.println("我是自行车")

}

}

我们把车类这个模糊的概念定义成抽象类,谁继承车这个类谁就去实现车类中的抽象方法.看到这会有人问了,抽象类跟接口好像哦,都是继承去实现里面方法,对的抽象类跟接口是有一定相似度的,但是还是有区别的,首先

①类只能单继承,一个类只可以继承一个类,这样就具有很大的局限性,接口则没有这么多规定,接口可以多继承,多实现。

②抽象类中可以有抽象方法也可以有非抽象方法,但是只要这个类中至少存在一个抽象方法,我们就要把这个类定义成抽象类,接口中全部都是没有实现的方法,只有方法体没有内容。谁继承它谁去实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值