接口 vs 抽象类
来源:互联网 发布:spark sql教程 编辑:程序博客网 时间:2024/05/29 08:41
简单的来说,接口是对行为的抽象,类是对对象的抽象。
抽象类
抽象类:包含抽象方法的类,不可用于创建对象
特点:
1. 为了子类能够继承,抽象方法必须为public或protected,默认为public
2. 如果继承抽象类,子类必须实现父类的方法,如果不实现,子类也被视为抽象类,也就是说,抽象类是可以继承抽象类的
接口
接口,实际上就是把需要多次使用的方法从类中剥离出来,以便所有的类使用。是一种对行为的抽象。
特点:
1. 所有方法视为public abstract;
2. 接口中一般不写变量,如果有必须是public static final类型。
接口 vs 抽象类
这两个东西从设计层次上就是不同的,一个根本上是类,只能继承一次,一个是接口,是行为,可以实现多次。举个栗子!
鸟和企鹅的例子
鸟有吃和睡觉两个行为
我们可以声明一个抽象类或者接口
abstract class bird{ public abstract eat(); public abstract sleep();}class penguin extend bird{ //具体实现}
or
interface bird{ public abstract eat(); public abstract sleep();}class penguin implements bird{ //具体实现}
如果我现在需要鸟可以飞。
1. 把三个功能放到抽象类中,但是企鹅是鸟类但是不会飞,所以该方案不可行;
2. 在每个可以飞的鸟类实现类中加一个fly方法,很多鸟都可以飞,我是个懒人,不喜欢敲太多代码;
3. 把fly写在interface中,让所有可以飞的鸟类实现该接口。
abstract class bird{ public abstract eat(); public abstract sleep();}interface fly{ public abstract fly();}class penguin extend bird implements fly{ //具体实现}
栗子中体现了接口和抽象类的本质不同,抽象类是对象固有的行为,对于鸟类是吃和睡,而接口是扩展的行为,例如飞。
阅读全文
0 0
- 接口 vs 抽象类
- 抽象类 vs 接口
- 接口VS抽象类
- 抽象类vs接口
- 抽象类 VS 接口
- 抽象类VS接口
- 抽象类VS接口
- 抽象类VS接口
- 抽象类VS接口
- 抽象类 VS 接口
- 接口 vs 抽象类
- Java 抽象类 vs 接口
- 数组VS枚举;类VS结构;抽象类VS接口
- 抽象类 vs 接口(Java)
- 图说OO--抽象类VS接口
- 【C#】——抽象类VS接口
- 【java学习笔记】接口VS抽象类
- Abstract Class VS Interface | 抽象类VS接口
- srping boot jar包启动报错:(IDE运行没有错误)java.lang.IllegalArgumentException
- ActiveMQ和spring整合,订阅主题和消息消费
- Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告
- C++Primer第五版(习题答案详解)
- 连接池原来这么简单(一分钟系列)
- 接口 vs 抽象类
- SharePoint 2013 文档库“样式”变了
- OKhttp 小编程
- java.net.UnknownHostException: XXX: XXX: Name or service not known
- Java绑定
- [Python] 小抄
- 深入理解Angularjs中的$resource服务
- Vue函数式组件个人理解
- 一分钟实现分布式锁