面向对象的三大特性
1.封装
将类的某些信息封装在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的好处是减少了代码的复杂性,方便修改和实现,以及提高了代码的安全性。
过程:将属性改为private,这样类的外部就不能直接访问该属性。需要通过该类中的getter/setter方法完成属性的读写。
2.继承
子类通过extends继承父类的属性和方法。private无法继承。子类可以复写父类中的方法实现功能的变化,也可以追加新的属性和功能。java中是单继承,即一个子类只有一个父类。
继承的好处是可以实现代码的复用,减少代码量。
在创建子类对象是,会先执行父类构造方法再执行子类构造方法。
super关键字:
可以代表父类,super.属性名可以调用父类属性,super.方法名()可以调用父类方法。
object类:
object类是所有类的父类
3.多态
引用多态:在建立对象时,父类的引用既可以指向本类的对象,也可以指向子类的对象
方法多态:创建本类对象时,调用本类方法。创建子类对象时,如果子类中复写了方法,就调用该复写的方法,否则直接调用父类方法
多态中的引用类型转换:
1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换;
2.向下类型转换(强制类型转换),是大类型到小类型的转换;
3.instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题;
强制类型转换具有风险,因为可能会造成溢出