继承
继承是指一个类(子类)继承于另外一个类(父类),子类从父类继承到的内容是父类的属性和方法,子类可以在内部调用父类的方法与变量
-
JAVA之中的继承只能是单继承,一个类只能继承一个类,一个子类只有一个父类,但是一个父类有多个子类。
JAVA之中的每一个类都是有java.lang.Object类继承而来的,所以每个类都直接或者间接的是Object的子类。
继承关键字
关键字的使用决定了一个对象与另外一个对象是否是IS-A关系。
Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现)。
继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。
-
extends
这个关键字声明了一个类是继承另外一个类而来的:
//A类
public class A {
//私有变量1
private int variable1;
//受保护变量2
protected int variable2;
//公开变量3
public int variable3;
public void func() {
}
}
// B类
public class B extends A {
}
-
implements
接口使用的关键字,也属于继承的一种,接口详细请到另外一篇进行阅读:
//A类
public class A {
//私有变量1
private int variable1;
//受保护变量2
protected int variable2;
//公开变量3
public int variable3;
public void func();//不能有函数的具体实现
}
// B类
public class B implements A {
//必须实现的方法
@Override
public void func() {
int variable4= variable2;
}
}
继承的结果
子类和父类在同一个包下时 ,子类和子类的对象可以调用父类的默认的,受保护的,公有的属性以及方法。
子类和父类在不同的包下时,在子类中可以调用受保护的,公有的属性以及方法,而子类的对象可以调用受保护的,公有的属性以及方法。
方法的重写
当父类中的方法不能满足子类的需求的时候,这时候需要重写父类的方法。
重写后的方法会被优先调用。
方法的重写要保证以下几点:
- 保证子类方法和父类方法的方法签名(方法名+参数列表)一致;
- 访问权限 : 子类方法的访问权限(修饰符)不能够比父类方法的访问权限更低;
- static 方法不能够被覆写
- 返回值类型 : 子类方法的返回值类型可以是父类方法的返回值类型的子类或者相等
继承的优点
提高了代码的复用性
让类与类之间产生了关系,给第三个特征多肽提供了前提