标签:
一个子类的对象向上转型给了一个父类的对象,父类中调用的属性和方法都是指向的子类对象的。
也就是说指向的是子类中的复写override的方法。
向上转型是不可能会失败的。
//一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型 //一个引用调用的是哪一个方法,取决于这个引用所指向的对象 class Test{ public static void main(String args []){ //Student s = new Student(); //Person p = s; Person p = new Student();//向上转型 Student s = (Student)p;//向下转型,必须先向上转型才能向下转型,否则是错误的转型 p.name = "zhangsan"; p.age = 20; //错误的p.address = "Beijing"; p.introduce(); } }
class Person{ String name; int age; void introduce(){ System.out.println("my name is " + name +",my age is " + age); } }
class Student extends Person{ String address; void study(){ System.out.println("我正在学习"); } void introduce(){ super.introduce(); System.out.println("我的家在"+ address); } }
标签:
原文地址:http://www.cnblogs.com/codetochangetheworld/p/4220043.html