什么是继承
继承是所有oop语言和Java语言不可缺少的组成部分
继承是Java面向对象编程技术的一块基石,是面向对象三大特征之一,也就是实现软件复用的重要手段,继承可以理解为一个对象从另一个对象获取属性的过程
如果类A是类B的父类,而类B是类C的父类,我们也称类C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类
关键字是extends
关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系
通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性
所有Java的类均是有java.lang、Object类继承过来的,所有Object是所有类的祖先,除了Object外,所有类必须有一个父类
语法
public class 子类 extends 父类{
代码段
}
通过extends关键字可以申明一个类是继承另外一个类而来的,一般形式如下:
public class A{
private int i;
protected int j;
public void f(){
}
}
//另外一个类 B.java文件名
public class B extends A{
public int z;
public void fun(){
}
}
上述代码说明,类B由类A继承而来,类B是类A的子类,而类A是Object的子类
作为子类,类B的实例拥有类A所有的成员变量,但对于private类型的成员变量B却没有权限访问,这保障了A的封装性
IS-A关系
IS-A就是说:一个对象是另一个对象的分类
下面是使用extends实现继承
public class Animal{
}
public class Mammal extends Animal{
}
public class Reptile extends Animal{
}
public class Dog extends Mammal{
}
- Animal 类是 Mammal 类的父类。
- Animal 类是 Reptile 类的父类。
- Mammal 类和 Reptile 类是 Animal 类的子类。
- Dog 类既是 Mammal 类的子类又是 Animal 类的子类。
IS-A关系表
- Mammal IS-A Animal
- Reptile IS-A Animal
- Dog IS-A Mammal
因此 : Dog IS-A Animal
通过使用关键字extends,子类可以继承父类的除private属性外的所有属性