一、继承
继承的关键字extends,放在一个类名的后面,用extends关键字去继承一个类,被继承的那个类叫父类(超类、基类)superClass。当前的这个类就叫做子类。
子类extends继承父类,就继承了夫类权限范围内所拥有的东西。
-
继承的意义:
1、提高了代码的复用率。
2、提高了代码的维护性。
因为共同的方法放在了同一个父类里面,方便了管理和修改。
3、让类与类之间产生关系,让类之间联系的更密切。是多态性的前提(声明父类new子类)
(*)java支持多层继承,但不支持多继承。一个类一次只能有一个父类,但是父类仍然可以再往上继承父类。
-
继承的弊端:
1、java只支持单根继承,不支持多继承,存在单继承的局限性。
2、继承最大的弊端就是耦合度太高。
3、子类只能继承父类成员。比如,子类不能继承父类的私有成员
-
什么时候去用继承呢?
采用假设法,当什么是什么(...... is .......)的时候采用继承,比如:程序猿是职业,那么职业就是父类,程序猿只是职业的一个子类。
-
子类继承父类的属性与方法
1、属性
当子类自己的属性与父类的属性同名时,子类会调用自己的属性,这叫属性的重写(覆盖、覆写),而不去调用父类的该同名属性。
2、方法
当子类存在与父类同名的方法时,调用自己的方法。这叫方法的重写(覆盖、覆写)。
(*)注意:方法的 覆写 与 方法的 重载 的区别
1、覆写(重写)
方法名与父类的相同,参数与父类的相同,返回值相同、权限修饰符要大于等于父类的权限修饰符。
2、重载
发生在同一个类中
方法名相同、参数不同(参数的个数、顺序、类型)
与权限修饰符、返回值无关
(*)内部类的变量查找顺序
当前方法---->本类成员---->外部类成员
(*)子类变量查找范围
当前方法---->本类成员---->父类成员