多态包括重载和重写,
我当时也理解了好久,重载比较好理解,虚函数的重写比较难理解
你说的虚函数的重写
就是在父类里定义一个虚函数eat();
然后,子类Student,Teacher都去现实eat()
这样在,在编译时是不确定用Student,还是Teacher的eat()
而是在运行时判断具体的对象是什么子类,再用子类的重写方法。
我当时也理解了好久,重载比较好理解,虚函数的重写比较难理解
你说的虚函数的重写
就是在父类里定义一个虚函数eat();
然后,子类Student,Teacher都去现实eat()
这样在,在编译时是不确定用Student,还是Teacher的eat()
而是在运行时判断具体的对象是什么子类,再用子类的重写方法。
不过 好像只要不是 后期绑定就不是多态
这也是出自java编程思想
典型的说,多态包括四个类型:多态变量、overload、override和泛型(GP!!)。
在Java中,更多的,多态指 纯多态——也就是TIJ的意思。
同一个类中的同名函数(参数列表不同,返回类型相同)体现了重载(拼音:zhong zai)overload;
(其实可以把它们看成是两个完全不同的函数来理解)父类和子类同时拥有的函数(函数名、返回类型、参数列表都相同),运行时决定调用哪个类的方法,这叫覆盖override。这里体现了多态(动态类型)。
很多人把它读作“chong zai”
我认为是不对的,应该是“zhong zai”overload:
vt.使超载, 超过负荷
n.超载, 负荷过多应该是zhong zai的意思。
除了让Java的初学者晕晕糊糊之外,一无是处。
这个链接,是道理正确,讲解别扭的典型。很早就看过,看得我一头汗。
这个翻译比E文的还难懂。
全面理解多态(OOP),建议看budd的书《面向对象编程导论》。(永远不要小看导论。)