继承:将两个或多个类中的共有方法抽取出来封装到另外一个类中,通过 extends 关键字进行连接,这些类与这个新建的类就形成了继承关系
1.优点
-- 提高了代码的复用性
-- 提高了代码的维护性
-- 让类与类之间产生关系,是多态的前提
2.缺点
-- 继承是侵入性的
-- 降低了代码的灵活性:子类必须有父类的非私有属性和方法,对子类形成约束
-- 增强了代码的耦合性
注意:
1、子类只能使用父类的非私有的成员
2、Java 支持单继承不支持多继承,支持多层继承
3、子父类出现重名变量或方法,会优先访问子类中的变量和方法,子类中没有才会往父类中找
4、this 和 super
this :
类中对属性进行使用,指向当前类的成员变量
类中对 new 出来的对象使用,指向对象中成员变量
super:父类对象的引用,指向父类的存储空间标识
5、如果接口有默认 save 方法,实现类有实现 save 方法,访问时会优先访问实现类中的 save 方法
话外篇:Java 支持 实现多个接口
重写:继承体系中,子父类出现同样的方法声明
注意:
1、父类私有方法不能被重写
2、子类只能通过非静态方法重写父类非静态方法,静态方法不能被重写,出现的同名方法只是对父类的这个方法进行了隐藏,不是方法重写
3、方法重写时,子类的重写方法的访问权限必须大于父类
4、重写的特点:返回值类型、方法名、参数列表 这三者完全一致