码迷,mamicode.com
首页 > 其他好文 > 详细

接口和抽象类的对比,面向对象的三大特性和四大特性

时间:2017-04-15 00:19:43      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:开始   体系   color   代码   使用   抽象类   区别   优先   实例   

Day09_SHJavaTraing_4-14-2017

一.接口和抽象类的对比
1.相同点
    ①都位于继承的顶端,用于被其他类实现或继承
    ②都不能直接实例化对象
    ③都包含抽象方法,其子类都必须覆写这些抽象方法
2.区别

2.1从声明上:

   ①抽象类是一个类,需要使用关键字class声明
        ②接口不是一个类,使用关键字interface声明

2.2从能够书写的成员上看:

   ①抽象类可以书写类中的所有成员

   ②接口中只能书写成员变量和抽象函数(从JDK8开始,接口中可以有实现的函数)

2.3从有无构造函数上看:
   ①抽象类有构造函数,是给子类实例化对象使用的
   ②接口没有构造函数
2.4从作用上看:
   ①抽象类是描述的继承体系中的共同的特征和行为,如果行为不确定,就定义为抽象函数,提高代码重用性
   ②接口描述的是不属于继承体系的共同的功能;接口可以用来定义规则

2.5继承关系上:
   ①抽象类是一个类,只支持单一继承和多重继承
   ②接口和接口可以多继承和多重继承;接口和实现类可以多实现
2.6从继承体系的关系上:
   ①抽象类是这个事物中应该具备的内容, 继承体系是一种 is..a关系
   ②接口是这个事物中的额外内容,继承体系是一种 like..a关系
3.二者的选用
    ①优先选用接口,尽量少用抽象类

    ②要定义子类的行为,又要为子类提供共性功能时才选用抽象类

二.面向对象的三大特性,有哪三个?四大特性,有哪四个?(面试题)
    三大特性:封装,继承,多态(如果没说几个就是三个)
    四大特性:封装,继承,多态,抽象(如果说四个就是前面四个)

接口和抽象类的对比,面向对象的三大特性和四大特性

标签:开始   体系   color   代码   使用   抽象类   区别   优先   实例   

原文地址:http://www.cnblogs.com/EzraOholiabXue/p/Day09_SHJavaTraing_4-14-2017_01.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!