面向对象基础


title: 面向对象基础
date: 2019-01-20 21:17:05
tags: Interview
categories: Interview

什么是面向过程,什么是面向对象,面向对象的三大基本特征和五大原则是什么

什么是面向过程

将问题分解成一个一个步骤,每一个步骤由函数实现,对函数依次调用。

什么是面向对象

将问题分解成一个一个步骤,对每个步骤进行抽象,形成对象。通过对象之间的相互调用,解决问题

三大基本特征

封装,继承,抽象

五大原则

单一原则

一个类最好只干一件事情,体现高内聚低耦合

开闭原则

思想: 对扩展开放,对修改关闭

李氏替换原则

思想: 子类必须能够替换父类,而父类不能替换子类

依赖倒置原则

依赖于抽象而不是依赖于具体类

接口隔离原则

思想: 使用多个小的专门的接口,而不是一个大的胖的接口。

实现:

  1. 可以通过增加一个类来委托它做某些事

  2. 多重继承分离

Java与C++同为面向对象语言,他们的区别有哪些,各有什么优缺点呢

  • 最主要的区别:

    C++是编译型语言,执行速度快,效率高,依赖于编译器,跨平台差

    Java是解释型语言,生成中间Java字节码,JVM对字节码进行解释执行字节码

    Java也有人说是半编译半解释型语言,由javac编译成字节码文件,然后由JVM虚拟机进行逐行解释

  • C++是平台相关的,Java是平台无关的

  • C++对所有的数字类型有标准的范围限制,但是字节长度与具体实现相关,深入理解操作系统这本书中曾提过,确实是不一样。Java在所有平台上对所有的基本类型都有着标准的范围限制和字节长度

  • C++支持指针,支持值传递和引用传递,Java只有值传递

  • C++需要显示的进行内容回收,而Java自动垃圾回收

  • C++支持多继承,Java只支持单继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值