1.1 继承的定义
继承可以看成是类与类之间的衍生关系。比如狗类是动物类,牧羊犬类又是狗类。于是我们可以说狗类继承了动物类,而牧羊犬类就继承了狗类。于是狗类就是动物类的子类(或派生类),动物类就是狗类的父类(或基类)。
所以继承需要符合的关系是:is-a,父类更通用,子类更具体。
我们创建一个类需要它来继承某一个类的语法:
class 子类 extends 父类
例如我们定义了一个 Animal 类,我们在创建一个 Dog 类,我们需要它继承 Animal 类
class Dog extends Animal {
...
}
接下来我们就来练习一下吧!
我们先创建一个父类 Animal
package com.shiyanlou;
public class Animal {
public int legNum; //动物四肢的数量
//类方法
public void bark() {
System.out.println("动物叫!");
}
}
接下来创建一个子类,我们可以自己输入代码,也可以利用 Eclipse 帮我们自动建立继承关系。
1、点击创建 class 类
2、输入子类名称,点击Superclass
后面的Browse...
寻找父类,与之建立继承关系
3、在Choose a type:
下的输入框内输入要寻找的父类,然后选择,结束。
package com.shiyanlou;
public class Dog extends Animal {
}
上面便是系统生成的代码,Dog 类继承了父类 Animal,我们 Dog 类里什么都没有写,其实它继承了父类 Animal,所以 Dog 类拥有 Animal 类的全部方法和属性(除开 private 方法和属性)。我们创建一个测试类测试一下。
class Test{
public static void main(String[] args) {
Dog a = new Dog();
a.legNum = 4;
a.bark();
}
}
为什么需要继承?
如果有两个类相似,那么它们会有许多重复的代码,导致后果就是代码量大且臃肿,后期的维护性不高。通过继承就可以解决这个问题,将两段代码中相同的部分提取出来组成一个父类,实现代码的复用。
继承的特点:
- 子类拥有父类除private以外的所有属性和方法
- 子类可以拥有自己的属性和方法
- 子类可以重写实现父类的方法
- Java 中的继承是单继承,一个类只有一个父类
注: Java 实现多继承的一个办法是 implements(实现)接口