一、继承
1、概念
子类的共性
重用现有类并在此基础上进行扩展
public class 子类 extends 父类{}
2、继承中的成员访问
成员变量 |
成员方法 |
局部->本类中成员变量->父类中非私有成员变量 |
本类中方法->父类中非私有成员方法->object基类中非私有成员方法 |
3、方法重写
(1)、为什么要重写
父类的方法不能满足我们的需求,我们需要进行扩展。
(2)、怎么进行重写
子类中的方法名、方法权限、方法形参和父类一样,此时就产生了重写
(3)、重写的注意点
(1)子类只能重写父类的非私有方法。
(2)子类重写的方法权限要大于等于父类,为了避免出错,最好采用一样
(3)权限类型:public>protected>默认>pravite
(4)@Override 注解:标记一个方法,表面该方法为重写父类
4、this和super
(1)、this
this表示的是对象的引用
3、super
表示父类的引用
super.name//父类的name
super();//父类构造函数,用于子类的构造函数第一步
super.buy();//父类的buy方法
5、继承优缺点
优点:隔离了用和做,在一定程度上增加了代码的复用性(但是不建议用继承来提高复用性,可以用关联或者依赖)
缺点:增加了程序的耦合性。
二、多态
调用父类的方法执行子类的方法。
父类的行为在不同的子类上有不同的体现
1、多态前提
继承
方法重写
父类引用指向子类
2、成员访问
成员变量 |
成员方法 |
编译父类,执行子类,没有报错 |
编译父类,执行子类,子类没有执行父类,父类没有报错 |
3、优缺点
优点:代码复用性,扩展性
缺点:不能使用子类的特有成员
4、转型
(1)、向上转型,父类引用指向子类
(2)、向下转型,父类类型转变为子类,强行转换