博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口和抽象类的对比,面向对象的三大特性和四大特性
阅读量:4552 次
发布时间:2019-06-08

本文共 744 字,大约阅读时间需要 2 分钟。

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.二者的选用
    ①优先选用接口,尽量少用抽象类

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

二.面向对象的三大特性,有哪三个?四大特性,有哪四个?(面试题)

    三大特性:封装,继承,多态(如果没说几个就是三个)
    四大特性:封装,继承,多态,抽象(如果说四个就是前面四个)

转载于:https://www.cnblogs.com/EzraOholiabXue/p/Day09_SHJavaTraing_4-14-2017_01.html

你可能感兴趣的文章
JavaScript 字符串(String) 对象
查看>>
How to use VisualSVN Server and TortoiseSVN to host your codes and control your codes' version
查看>>
微信小程序picker组件 - 省市二级联动
查看>>
Dynamics CRM 给视图配置安全角色
查看>>
Eclipse修改已存在的SVN地址
查看>>
C++ ACM基础
查看>>
(转)使用 python Matplotlib 库绘图
查看>>
进程/线程切换原则
查看>>
正则表达式语法
查看>>
20165301 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Vue的简单入门
查看>>
urllib 中的异常处理
查看>>
通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
查看>>
SQL优化:重新编译存储过程和表
查看>>
PCB“有铅”工艺将何去何从?
查看>>
Solr环境搭建
查看>>
垂直居中的几种实现方法
查看>>
UILabel标签文字过长时的显示方式
查看>>
H5离线缓存机制-manifest
查看>>
比较:I/O成员函数getline() 与 get()(第二种用法)的用法异同
查看>>