多态

学生类(Student)继承于(Extends)人类(Person)

Student s1 = new Student();

Person s2 = new Student();

s1可以执行自己(Student)的所有方法,包括继承而来的。

s2不能执行Student独有的方法。

对象可以执行哪个方法主要看对象左边的类名。

 

Extra e = new Extra();
Extra ee = new Extra2();

e.say();
//方法的重写时,会调用子类的方法!
ee.say();
//ee对象只能调用对象左边类中的方法。所以会报错!
//不能使用父类的对象调用子类的方法,需要转换。
//ee.eat();
//类型转换!
((Extra2)ee).eat();
//由于继承,转换后仍然可以调用父类方法。
((Extra2)ee).drink();
//子类对象转为父类对象时,可能会丢失独有的方法!所以会报错!
//((Extra)ee).eat();

posted @ 2021-11-26 09:09  Boerk  阅读(19)  评论(0)    收藏  举报