对象的转型(向上转型和向下转型)

转型是面向对象多态性的体现。

向上转型——将子类的对象赋值给父类的引用。

Student s=new Student();

Person p=s;

简写:Person p=new Student();

注意 :Student和Person有继承关系,一个引用能调用哪些成员变量(变量和函数),取决于这个引用的类型。因此p只能调用Person类里面的成员变量。如果子类和父类都有同一个命名的方法(存在复写关系),引用调用的是哪个一个方法呢?取决于这个引用所指向的对象。

总结:父类定范围,用东西还是用子类的。


对象的转型(向上转型和向下转型)_第1张图片

向下转型——将父类的对象赋值给子类的引用。

Student s1=new Student();

Person p=s1;

Student s2=(Student)s1;

简写: Person p=new Student();

            Student s=(Student)p;

至于两种转型方式的优缺点,后期会逐渐完善。

你可能感兴趣的:(对象的转型(向上转型和向下转型))