一、概念
在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
格式:class 子类 extends 父类
二、特点
1、在Java中类只支持单继承,不允许多继承,一个类只能有一个直接的父类,例如下面的情况是不合法的
class A{} class B{} class C extends A,B{}
2、多个类可以继承一个父类 例如下面的情况是允许的
class A{} class B extends A{} class C extends A{}
3、在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。下面这种情况是允许的。
class A{} class B extends A{} class C extends B{}
4、在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的这种情况中,B类是A类的子类,同时又是C类的父类
三、继承中成员变量的特点
1、子类只能获取父类非私有的成员;子父类中成员变量名字不一样直接获取父类的成员变量;子父类中成员变量名字一样获取的是子类的成员变量
2、就近原则:谁离我近用谁,如果有局部变量就用局部变量;没有局部变量,有子类成员变量就用子类成员变量;没有局部变量和子类成员变量就用父类成员变量。
3、super可以获取父类的成员变量和方法。
四、方法重写
应用场景:当父类的方法不能完全满足子类使用的时候,既可以保留父类的功能(沿袭、传承),还可以有自己特有的功能
注意事项:不可以重写父类私有的成员方法,压根就看不到父类的私有成员
子类重写父类方法,权限必须大于等于父类方法的权限
注解: @Override:方法重写,说明下面方法是重写父类的方法。
五、this&super
A:super(实参列表);语句 在子类的构造方法中使用,用来调用父类中的构造方法(具体哪一个由传递的参数决定),并且只能在构造方法第一行使用
B:this(实参列表); 语句 在类的构造方法中使用,用来调用本类中的其它构造方法(具体哪一个由传递的参数决定),并且只能在构造方法的第一行使用
六、继承的优缺点
A:优点
提高了代码的复用性
提高了代码的可维护性
B:缺点:
类的耦合性增强了
开发的原则:高内聚低耦合
内聚:就是自己完成某件事情的能力
耦合:类与类的关系