继承的好处:
提高了代表的可维护性
提高了代码的复用性
让类与类之间产生了继承关系
n继承的弊端:
类与类之间的耦合度过高
注意:一个子类只能继承一个父类,一个实现可以实现多个接口。
继承中的成员变量关系:
不同名的变量:子类直接继承使用
同名的变量:默认访问的是子类自己的成员变量, 想访问父类中的同名变量,请使用 super.成员变量。
方法重写(override):指 在子父类中,出现了方法声明相同的情况,也叫做方法覆盖,方法复写
方法重写的注意事项:
1.子类的方法声明要与父类相同(返回值,方法名,参数列表===一模一样)
2,.子类要重写父类的方法,方法的权限修饰符不能比父类的更低
public default protected private
3,.父类私有的方法,子类不能够进行方法重写
方法重载(overload):指 在同一个类中,多个方法名称相同,它们的参数列表不同(个数不同,数据类型不同)
抽象类与接口的区别:
相同点:
都位于继承的顶端,用于被其他类实现或继承;
都不能直接实例化对象;
都包含抽象方法,其子类都必须覆写这些抽象方法,才能被实例化(new);
区别:
抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码复用性;接口只能包含抽象方法;
一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)程序的安全问题
抽象类是这个事物中应该具备的内容, 继承体系是一种 is..a关系
接口是这个事物中的额外内容,继承体系是一种 like..a关系
二者的选用:
优先选用接口,尽量少用抽象类;