Java 抽象类和接口的区别

来源:互联网 发布:淘宝培训班杭州 编辑:程序博客网 时间:2024/06/16 05:48

1定义的不同:抽象类 只能单根继承;接口,一个类可以同时实现多个接口
2设计理念的不同:我的理解,抽象类往往定义一些基础的功能,是一种 is a的关系;而接口往往定义一些扩展性的高级功能,是一种like a的关系。比如:拿门为例,每一个门都有开关的功能,那就把开关设计到抽象类里面;而有的门还有报警的功能,但不是所有的门都有报警的功能,那就把报警设计到接口里面。

    abstract class Door {     abstract void open();     abstract void close();     }     interface Alarm {     void alarm();     }     class AlarmDoor extends Door implements Alarm {     void open() { … }     void close() { … }     void alarm() { … }     } 

3结构的不同:抽象类里面包含属性和方法,而接口中只有方法。

原创粉丝点击