以extends为关键字的继承是OOP不可缺少的部分,所有创建的类总是在继承,除明确指出要继承的类外,不含extends关键字的则是在隐式继承基类Object。继承是Java语言的三大特色之一。
继承的主要作用在于可以复用被继承类的所有方法,并可以进行重写。下面举一个例子。
首先我们先创建一个Animal的类,类中包含了动物的某些共同行为。
public class Animal {
void run(){
System.out.println("running");
}
void sleep() {
System.out.println("zzz");
}
void eat() {
System.out.println("吃饭");
}
}
我们再来创建一个Bird类,它具有动物类中的所有特征,为了使加强代码复用性,我们选用继承,让Bird类继承Animal类。这里我们需要用到重写,将父类中的run()方法进行重写,因为鸟类是飞的,所以我们重写该方法。
public class Bird extends Animal{
void run() {
System.out.println("flying");
}
void shengchan(){
System.out.println("我是卵生的");
}
}
重写后的方法会在本类中覆盖父类中的方法,现在我们调用一下Bird类中的方法。
public static void main(String [] args) {
Bird bird = new Bird();
bird.run();
bird.sleep();
bird.eat();
bird.shengchan();
}
来看一下运行结果
/**
* output:
* flying
* zzz
* 吃饭
* 我是卵生的
*
/
那么重写父类的方法后父类的方法其实是还在的,如果想在本类中接着调用,就需要用到super,其他类则仍可以使用父类提供的该方法。