你是不是和我一样,就算是一个简单的知识点,你忽略它小看它,结果有一天,当别人来请教你的时候,你什么都说不上来。
比如今天的这个问题,何时使用接口,何时使用抽象类?
1.首先有几个点必须知道:
1)java中支持单继承(extend)多实现(implement)
2)使用抽象类是为了代码的复用,而使用接口是为了实现多态性
3)抽象类定义了你是什么,接口定义了你能做什么(一个接口最好只能做一件事)
4)接口定义的一般都是公有的特性,抽象类定义的一般都是某个对象特有的特征
5)当确定某个事物应该成为一个基类的话,接口是第一选择
2.举个栗子你就明白啦...
F22是飞机的一种,鸽子是鸟的一种,他们都有飞的动作。那么此时飞机和鸟就将是抽象的基类,飞应该是定义的接口。F22的本质是飞机只能单继承,但它可以有除了飞之外的其他行为动作,比如下落的公有动作,可以写在接口里。鸽子也一样,它的本质是鸟就只能单继承鸟,但是它也许有除了飞之外的其他技能,比如传递书信的特有动作,可以写在抽象类的方法里。
代码实现如下:
public class demo { interface action { void fly(); } abstract class airplane { abstract void jiayou(); } abstract class bird { abstract void eat(); } class F22 extends airplane implements action { @Override void jiayou() {} @Override public void fly() {} } class gezi extends bird implements action { @Override void eat() {} @Override public void fly() {} } }希望以后类似这样回答不上来但是简单的问题都能如样记录下来。加油!