面向对象程序的特征
封装
- 目的:提高代码的安全性。
- 理解:对于一个类(对象),属性私有,方法公有,只能通过对象的方法(getter/setter)对属性进行访问。
继承
- 目的:提高代码的复用性。
- 理解:在已有类的基础上创建新的类,新的类可以继承原有类的字段和方法。
多态
- 理解:
体现在重写和重载。区别在于重载实现的是编译时的多态性;重写实现的是运行时的多态性。父类的引用可以是其子类。// 举例:Student是Person的子类 Person person = new Student();
重写(@Override):
- 发生在父类和子类之间。
- 方法名、参数列表、返回类型必须相同(除非子类中方法的返回类型是父类中返回类型的子类)。
- 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)。
- 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
重载(@Overload):
- 发生在一个类中。
- 要求同名方法的参数列表不同(参数类型、参数个数、参数顺序)。
- 返回值类型可以相同也可以不同。无法以返回值类型作为重载函数的区分标准。