天天看点

多态

学生类(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();