转型是面向对象多态性的体现。
向上转型——将子类的对象赋值给父类的引用。
Student s=new Student();
Person p=s;
简写:Person p=new Student();
注意 :Student和Person有继承关系,一个引用能调用哪些成员变量(变量和函数),取决于这个引用的类型。因此p只能调用Person类里面的成员变量。如果子类和父类都有同一个命名的方法(存在复写关系),引用调用的是哪个一个方法呢?取决于这个引用所指向的对象。
总结:父类定范围,用东西还是用子类的。
向下转型——将父类的对象赋值给子类的引用。
Student s1=new Student();
Person p=s1;
Student s2=(Student)s1;
简写: Person p=new Student();
Student s=(Student)p;
至于两种转型方式的优缺点,后期会逐渐完善。
网友评论