一、继承的概念、分类与实现
(1)继承的概念
继承即从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
(2)继承的分类
继承分为单继承和多继承,单继承是一个子类最多只能有一个父类;多继承是一个类构造方法仓可有两个以上的父类。注意:Java的类只支持单继承,而接口支持多继承,即Java多继承的功能是通过接口方式来间接实现的。
(3)继承的实现
子类定义的一般格式:
[类修饰符] class 子类名 extends 父类名{
成员变量定义;
成员方法定义;
}
在子类的定义中,用关键字extends来明确指出它所继承的父类。例如
class Student extends person{}
其中person类叫作父类,也成为超类或基类;Student类叫作子类,也叫作派生类。
二、构造方法在继承中的应用
构造方法的继承遵循以下原则:
①子类无条件地继承父类的无参数的构造方法。
②如果子类定义了构造方法,则在创建子类对象时,将先执行来自继承父类的无参数的构性和可维护性以及方法,然后再执行自己的构造方法。
③对于父类带参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来独一个类中,那么多用它,但这个调用语句必须是子类构造方法中的第一条可执行语句。
public class Animal {
public void eat(){
}
public void walk(){
}
}
public class Tiger extends Animal {
@Override
public void eat(){
System.out.println("老虎吃肉");
}
public void walk(){
System.out.println("老虎walk");
}
}
public class Zoo {
public static void main(String[] args) {
Zookeeper zk=new Zookeeper();
Animal animal=new Tiger();
zk.feed(animal);
}
}
public class Zookeeper {
public static void feed(Animal animal) {
animal.eat();
animal.walk();
}
}
执行结果为:
老虎吃肉
老虎walk
分析得知,父类的对象是优先于子类对象而存在的(在现实生活中也是如此)。也就是说,父类对象的构造在子类对象构造之前,即先调用父类构造方法创建父类对象,再调用子类构造方法创建子类对象。
当然,不管是构造父类对象还是子类对象,都是遵循以下步骤执行:
①静态语句的执行。
②成员变量的初始化。
③语句块的初始化。
④构造方法的执行。