类的上下转型的定义:
定义两个类,一个是小狗类,一个是动物类,当我们看见一个小狗的时候我们可以说,这个小狗它是一个动物,但是,如果我们看到任何一个动物的时候都直接说它是一个小狗,显然是不可以的。
这个动物类就是小狗类的父类,我们可以认为子类的对象它同时也是一个父类的对象,小狗它既是小狗它也是动物;但是父类的对象就不一定是子类的对象了,我们看见一个动物,它是狗吗?不一定,也有可能是小鸟;子类的对象转为父类的对象就是向上的转型,而父类的对象转为子类的对象就是向下的转型。
在父类转为子类的时候我们一定要注意,这种转换可能是失败的!
一、类的向上转型
1、语法:Parents object = new Child( );
用父类Parents类声明一个对象object,用子类实例化一个对象Child
示例:Person tom = new Student( );
理解:首先Person表明这是一个人,然后它叫tom,而后面实例化的是一个学生类的对象,说明tom是一个学生。
程序实例:
//第一个源程序文件:
public class Person {
public Person(String name) {
System.out.println("你好,我叫"+name);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
}
class Student extends Person{
public Student(String name) {
super(name);
}
}