Java 接口与抽象类

你是不是和我一样,就算是一个简单的知识点,你忽略它小看它,结果有一天,当别人来请教你的时候,你什么都说不上来。


比如今天的这个问题,何时使用接口,何时使用抽象类?

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() {}
    }
}
希望以后类似这样回答不上来但是简单的问题都能如样记录下来。加油!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值