1、继承性——面向对象的三大特征之一
(1)一个对象直接使用另一对象的属性和方法;(2)父类(基类、超类)
子类(派生类)
子类 extends 父类
(3)继承的好处:减少代码冗余,实现代码重用
(4)继承的注意事项
单根继承:一个类只能有一个父类;一个父类可以有多个子类
(4)子类的实例化过程
子类实例化时,先调用父类的构造方法,再调用子类的构造方法。
super(在子类的构造方法中调用父类的构造方法)
(1)用在子类的构造方法里,调用父类里的构造方法,super语句一定要处于整个构造方法的第一行
(2)变量的隐藏
条件:子类里的成员变量名和父类里的成员变量名一致,不要求类型一致
调用父类里被隐藏了的成员变量 super.i
(3)方法重写(覆盖)
条件:子类里的方法名、形参、返回类型与父类里的方法完全一样
子类的异常不能大于父类,子类抛出的异常<=父类
子类的访问级别不能低于父类的访问级别(public > protected > 默认 > private)
调用父类里被重写的方法 super.f();
2、封装性——面向对象的三大特征之二
(1)封装的定义:就是把数据和对数据操作的行为形成一个整体,这个整体就是一个java类
(2)封装的好处:模块化,代码重用,插件易于调试,提高数据的安全,操作简便
(3)属性私有化:属性private,提供get和set方法
3、多态性——面向对象的三大特征之三
(1)多态类型
(1)编译时多态---方法重载
在编译阶段就已经确定要调用哪个重载的方法
(2)运行时多态---方法重写
具体调用哪个子类的方法要到运行的时候,结果才能确定,多态只针对行为(方法)
(2)对象转型
(1)向上转型
上转型对象只能调用父类定义了的变量和方法,子类新增的变量和方法访问不到的
但可以访问子类重写父类的方法。(多态只针对方法)
(2)向下转型
向下转型对象可以访问父类里的属性、方法,同时也可以访问
子类新增的属性、方法。