JAVA.抽象类与接口的几个特点与异同
2016-03-28 21:45
302 查看
抽象
关键字:abstract
特点
1.抽象方法一定在抽象类中
2.抽象方法和抽象类都必须被abstract关键字修饰
3.抽象类不可以用new创建对象,因为抽象方法没有意义,创建抽象类对象会编译出错
4.抽象类如果被继承了,必须由子类复写起所有的抽象方法,建立子类
对象,如果子类只覆盖了部分抽象方法,那么子类还是一个抽象类。即子类如果不复写所有抽象方法,子类前面要加abstract。
5.抽象方法一定存在于抽象内中,但抽象类中不一定都是抽象方法
6.抽象类可以不定义任何抽象方法,那样做的意义就是不让该类建立对象
————————————————————
接口
关键字 interface 定义接口 implements 实现
1.接口中的成员都用默认的固定修饰符
常量:public static final
方法:public abstract
结构中的成员,都是被public修饰的
2.接口是不可以创建对象的,因为它的方法都是抽象的,没有实际意义的。
3.接口需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化。否则子类就是抽象类。
4.类与接口之间是实现,类与类之间是继承,接口与接口之间也是继承。
5.类在实现接口中的方法时,必须在方法前用public修饰,因为接口中的方法都是public修饰,覆盖时权限能大不能小。
6.类可以实现 多接口。因与继承不同的是,接口中的方法和变量都是抽象的,没有实际意义的,所以其中所有重名重复的属性都是相同的。
7.接口与接口之间可以多继承,理由同上
8.接口对于程序而言,能使程序拥有很强的扩展性
接口与抽象类的几个区别:
1.抽象类中不一定都是抽象方法,但接口中的变量和方法都一定是pubilc修饰的,抽象的
2.每个类只能继承一个抽象类,但能实现多个接口
3.接口和接口之间能多继承,而抽象类和抽象类之间只能单继承,因为可能存在非抽象方法,之间只能继承一个抽象类。
4.一般而言,抽象类中总结的是对象的 基本功能,就像人都会吃饭睡觉;而接口中总结的是 额外功能,就像不是每个人都会编java。
接口和抽象类的几个相同点:
1.之中都有抽象方法
2.都提升了程序的扩展性
3.都不能被创建对象
特点和异同有很多,小生只是列了几个比较重要或者明显的。
以上。
关键字:abstract
特点
1.抽象方法一定在抽象类中
2.抽象方法和抽象类都必须被abstract关键字修饰
3.抽象类不可以用new创建对象,因为抽象方法没有意义,创建抽象类对象会编译出错
4.抽象类如果被继承了,必须由子类复写起所有的抽象方法,建立子类
对象,如果子类只覆盖了部分抽象方法,那么子类还是一个抽象类。即子类如果不复写所有抽象方法,子类前面要加abstract。
5.抽象方法一定存在于抽象内中,但抽象类中不一定都是抽象方法
6.抽象类可以不定义任何抽象方法,那样做的意义就是不让该类建立对象
————————————————————
接口
关键字 interface 定义接口 implements 实现
1.接口中的成员都用默认的固定修饰符
常量:public static final
方法:public abstract
结构中的成员,都是被public修饰的
2.接口是不可以创建对象的,因为它的方法都是抽象的,没有实际意义的。
3.接口需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化。否则子类就是抽象类。
4.类与接口之间是实现,类与类之间是继承,接口与接口之间也是继承。
5.类在实现接口中的方法时,必须在方法前用public修饰,因为接口中的方法都是public修饰,覆盖时权限能大不能小。
6.类可以实现 多接口。因与继承不同的是,接口中的方法和变量都是抽象的,没有实际意义的,所以其中所有重名重复的属性都是相同的。
7.接口与接口之间可以多继承,理由同上
8.接口对于程序而言,能使程序拥有很强的扩展性
接口与抽象类的几个区别:
1.抽象类中不一定都是抽象方法,但接口中的变量和方法都一定是pubilc修饰的,抽象的
2.每个类只能继承一个抽象类,但能实现多个接口
3.接口和接口之间能多继承,而抽象类和抽象类之间只能单继承,因为可能存在非抽象方法,之间只能继承一个抽象类。
4.一般而言,抽象类中总结的是对象的 基本功能,就像人都会吃饭睡觉;而接口中总结的是 额外功能,就像不是每个人都会编java。
接口和抽象类的几个相同点:
1.之中都有抽象方法
2.都提升了程序的扩展性
3.都不能被创建对象
特点和异同有很多,小生只是列了几个比较重要或者明显的。
以上。
相关文章推荐
- Myeclipse project转换为eclipse project的正确方法(Myeclipse8.5版本转到eclipse java ee juno)
- java第二十五节-多线程socket通信
- java实用教程
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- java 堆排序
- JDK判断对象死亡用过的和正在用的两种算法
- 2016年蓝桥杯java B组省赛总结及注意1
- Java和JVM运行原理
- java-堆排序
- eclipse创建android项目,无法正常预览布局文件
- JAVAEE 框架 2016-3-28
- 排序算法之归并排序(Java)
- 【java web】--Jsp与beetl的前世今缘
- 排序算法之快速排序(Java)
- JAVA继承特点的小总结
- java 各种排序算法实现
- 排序算法之直接插入排序(Java)
- java中常用的快捷键
- spring-boot 1.3 以上版本使用spring-boot-devtools进行版本升级
- java 编程思想第四版学习随记