抽象类与接口学习笔记
来源:互联网 发布:知我无情有情歌词 编辑:程序博客网 时间:2024/06/06 00:21
抽象类与接口的区别
语法层次:
抽象类方式中,抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法,但是接口方式中,它仅能够有静态、不能修改的成员数据(但是我们一般是不会在接口中使用成员数据),同时它所有的方法都必须是抽象的。在某种程度上来说,接口是抽象类的特殊化。
对子类而言,它只能继承一个抽象类(这是java为了数据安全而考虑的),但是却可以实现多个接口。
设计层次
1、 抽象层次不同。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
2、 跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、飞机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、飞机共用一个父类吧!所以说抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的, 仅仅是实现了接口定义的契约而已。
3、 设计层次不同。
语法层次:
抽象类方式中,抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法,但是接口方式中,它仅能够有静态、不能修改的成员数据(但是我们一般是不会在接口中使用成员数据),同时它所有的方法都必须是抽象的。在某种程度上来说,接口是抽象类的特殊化。
对子类而言,它只能继承一个抽象类(这是java为了数据安全而考虑的),但是却可以实现多个接口。
设计层次
1、 抽象层次不同。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
2、 跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、飞机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、飞机共用一个父类吧!所以说抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的, 仅仅是实现了接口定义的契约而已。
3、 设计层次不同。
0 0
- Java接口与抽象类学习笔记
- java学习笔记----抽象类与接口
- 抽象类与接口学习笔记
- 抽象类与接口学习笔记
- 【JAVASE_学习笔记】抽象类与接口
- 《JAVA与模式》学习笔记之接口与抽象类
- Java学习笔记 --抽象类与接口 基于类Shape
- 《C#入门到精通》学习笔记 -- 抽象类 与 接口
- JAVA学习笔记(六)抽象类与接口
- php学习笔记--3. 抽象类 与 对象接口
- 学习笔记——抽象类与接口
- java学习笔记-抽象类abstract与接口interface
- 01-java学习笔记【接口与抽象类】
- 【Java学习笔记】3:抽象类与接口
- java学习笔记(十六)抽象类与接口
- Java接口与抽象(学习笔记)
- java抽象类和接口(学习笔记)
- [学习笔记]Java抽象类和接口
- junit学习之junit的基本介绍
- 实际案例讲解iOS设计模式——MVC模式
- 相机的工作原理
- 怦然心动的魔法整理术
- XML——基础(入门介绍)
- 抽象类与接口学习笔记
- top命令学习
- Android ContentProvider 学习归纳
- java web下spring整合hibernate怎么用junit4测试
- Java学习笔记(14.2)JavaFX Basics
- 父类事件与EditText事件冲突
- 99.从 NSObject 初始化了解 isa指针
- JAVA常用代码
- PDO概念及总结