14.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? overload一般翻译为重载,表示多个函数共用同一个函数名,为了保证调用这些同名函数时能正确区分究竟应该调用的是其中的哪一个,重载的各个函数的参数表(不考虑形参名)必须彼此不同,通常简略地说成“不同参数表”。它对返回值的类型没有任何要求,所以你可以随意为每一个重载的函数设置返回类型,相同也行,不同也行。
override一般翻译为覆盖,表示子类对从父类继承来的虚函数重新定义,它要求参数表必须跟父类中被覆盖的那个函数的参数表完全相同,返回值类型原则上也要求相同,但如果返回类型是父类的指针或者父类的引用,覆盖时返回类型允许是子类的指针或者子类的引用。