手记

面向对象总结

  1. 什么是面向对象?
    面向对象是一种符合人类思维逻辑习惯的编程思想,在现实生活中存在各种各样的事务,事务与事务之间存在关系,在程序中通过对象来描述现实中的事务,对象的关系来描述事务之间的关系。
    面向对象专注将解决问题的步骤,按照一定的规则交由多个对象,调用不同的方法协作组合完成。
    面向对象的三大特征:封装、继承、多态。
    • 封装
      隐藏具体的实现细节,对调用者透明,提高安全性。
      封装有2种:方法封装和属性的封装。
      属性的封装的三个步骤:
      • 属性私有化
      • 提供settter/getter方法
      • 加入逻辑控制语句(非必须)
    • 继承
      主要目的是复用代码。将子类共有的部分抽取出来,往上提一级,交由父类来实现,通过子类继承。
      继承用extends关键字。
    • 多态
      某种行为具备不同的形态的能力。
      实现多态的三大必要条件:继承、重写、父类的引用指向子类的实例。(向上转型)
 Person person = new Student();
  1. 方法重写和方法重载
    • 方法重载
      • 在同一个类中
      • 方法名相同
      • 参数列表(顺序、个数、数据类型)不同
      • 与访问修饰符和返回值无关
    • 方法重写
      • 子类继承父类中
      • 方法名相同
      • 参数列表(顺序、个数、数据类型)相同
      • 返回值类型是父类指定的类型或其子类
      • 访问修饰符不能严于父类
  2. 抽象类和接口的区别
    区别:
    • 抽象类
      • 抽象类通过abstract关键字描述
      • 抽象类可以有构造方法
      • 抽象类可以有普通方法和抽象方法
      • 抽象类中有变量和常量
      • 单继承
    • 接口
      • 接口通过interface关键字
      • 接口没有构造方法
      • 接口只有抽象方法(在jdk1.8以前是这样)
      • 接口中只有常量(final)
      • 接口是多实现
        相同点:
    • 抽象类和接口都不能实例化
    • 如果子类继承抽象类或实现接口,那么父的抽象方法子类要重写,如果不重写,子类也要变成抽象类。
  3. this和super的区别?
    • this
      this指的是当前对象。
      this():调用本类的构造方法
      this.属性名:调用本类的属性
      this.方法名:调用本类的方法
    • super
      super调用父类的属性和方法。(能被继承过来)
      super():访问父类的构造方法
      super.属性名:访问父类的属性
      super.方法名:访问父类的方法
  4. static关键字
    static表示静态的意思,它可以修饰属性和方法。
    • 修饰属性:给多个对象共享数据。
    • 修饰方法
      static修饰的属性和方法既可以通过类名.属性或类名.方法名来调用,也可以通过对象名.属性或对象名.方法名来调用。
      no static修饰的属性和方法可以通过对象名.属性或对象名.方法名来调用。
1人推荐
随时随地看视频
慕课网APP