1.继承的定义与使用(面向对象的第二大特征)
继承的主要作用在于,在已有的基础上进行功能的扩充操作
要使用继承,必须要满足“is-a”关系,eg: Student is a Person即满足从属关系
继承使用
子类使用extends继承父类,无须重复编写代码的情况下拥有父类的所有成员。(父类->基类;子类->派生类)
2继承的使用限制
(1)子类对象在实例化前一定会先实例化父类对象,先调用父类构造方法再调用子类构造方法.
(2)java只允许单继承不允许多继承,一个类只能继承一个父类;不允许多重继承,但可以使用多层继承
(3)在进行继承的时候,子类会继承父类所有的结构(包括私有域)
隐式继承:继承父类所有私有域
显式继承:继承父类的所有非私有域,可以直接调用
方法覆写(override)
定义:方法覆写发生在有继承关系的类之间,子类定义了与父类相同的方法(方法名称相同、参数的个数、类型、返回值全部都相同) 被覆写的方法不能拥有比父类更为严格的访问控制权限
存在方法覆写时,到底调用的是哪一个类的同名方法:
a.当前使用的对象是通过哪个类new的
b.调用方法是否被当前对象所在的类覆写,一旦被覆写,一定调用被覆写后的方法。
访问权限
private(仅限本类访问) < default(包访问权限) 同一个源文件中都可以使用< public
子类权限要大于等于父类权限。
方法覆写不能出现private权限
属性覆写(了解):子类定义了与父类同名的属性