一、继承 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)、向下转型,父类类型转变为子类,强行转换