1.向上转型:
将子类的对象赋值给父类的引用
Student s = new Student();
Person p = s;//Student是Person的子类
实例
class Person{
String name;
int age;
void introduce(){
System.out.println("我的姓名是:" + name + "我的年龄是:" + age);
}
}
class Student extends Person{
String address;
void study(){
System.out.println("我正在学习");
}
void introduce(){
//System.out.println("我的姓名是:" + name + ",我的年龄是:" + age);
super.introduce();//取代上一行
System.out.println("我的家在" + address);
}
}
public class Test20{
public static void main(String[] args){
Student s = new Student();//新建Student对象
Person p = s;//一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型(该例中是Person)
//以上两行代码可整合为:Person p = new Student();
p.name = "张三";
p.age = 20;
//p.address = "北京";
p.introduce();//一个引用调用的是哪一个方法,取决于这个引用所指向的对象,这里对象是Student
}
}
2.向下转型(转型之前要进行向上转型)
将父类的对象赋值给子类的应用
Person p = new Student();//向上转型
Student s = (Student)p;