一些基础概念

面向对象与面向过程

  • 面向对象:面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
  • 面向过程:面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。

Java 与C++的区别

  • 都是面向对象的语言,都支持封装、继承和多态
  • Java 不提供指针来直接访问内存,程序内存更加安全
  • Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
  • Java 有自动内存管理机制,不需要程序员手动释放无用内存
  • 在 C 语言中,字符串或字符数组最后都会有一个额外的字符‘’来表示结束。但是,Java 语言中没有结束符这一概念。

重载与重写

  • 重载
    • overload
    • 方法名字相同,参数可以不同,返回值也可以不同
  • 重写
    • override
    • 外壳不变 核心重写
    • 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。

封装 继承 多态

  • 封装:属性私有化 提供对外访问的方法
  • 继承:
    • 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。
    • 不支持多继承,但支持多重继承
  • 多态:
    • 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
原文地址:https://www.cnblogs.com/wzh7/p/12706325.html