1. 什么是面向对象

面向对象是一种编程思想。面向对象把现实生活中的事物抽象成类,事物的行为抽象成方法,事物的信息封装成属性。对象是指具体的某个事物,对象通过类创建出来的,完成某项功能则通过调用对象的方法。

  1. 面向对象的三大特性

面向对象具有三大特性,分别是:封装、继承、多态

封装:是指隐藏内部实现的细节,仅对外提供公共访问方式。   

继承:子类继承父类就拥有了父类所有的成员变量和成员方法。

多态:父类引用,指向子类对象。

  1. 什么是多态

多态是父类或接口定义的引用变量指向子类或具体实现类的实例对象。

前提:实现或继承关系;覆写父类方法。

好处:提高了程序的扩展性。

  1. 抽象类的特点
  2. 抽象类和抽象方法使用abstract关键字来声明
  3. 抽象类不能实例化对象
  4. 抽象类可以有抽象方法和非抽象方法
  5. 子类继承抽象类,必须实现抽象类的所有抽象方法
  6. 抽象类的属性不能定义成静态的
  7. 什么是方法重 

子类根据自己的需求重新定义父类继承过来的方法叫做方法重写。

方法重写有以下几个注意实现:

  1. 方法名相同
  2. 方法参数列表相同
  3. 方法返回值相同或者是比父类小
  4. 子类方法访问权限>=父类方法的访问权限
  5. 子类重写方法异常范围要小于父类方法异常或没有异常
  6. 什么是方法重载

方法重载: 发生在同一个类中,方法名必须相同,参数列表不同(参数类型不同、个数不同、顺序不同),方法返回值和访问修饰符可以不同,发生在编译时。

  1. 方法重载和方法重写的区别
  2. 重载是在同一个类,重写是在父子类中
  3. 重载的参数列表不同,重写参数列表相同
  4. 重载和返回值无关, 重写的返回值相同或者是父类方法返回值的子类
  5. 重载可以使用任意访问修饰符,重写访问修饰符大于等于父类方法修饰符
  6. 重载可以抛出不同异常,重写异常小于等于父类方法异常