动力节点Java培训 面试题:下面哪一项说法是正确的? A:在一个子类中,一个方法不是public的就不能被重载 B:覆盖一个方法只需要满足相同的方法名和参数类型就可以了 C:覆盖一个必须要有相同的方法名参数和返回类型 D:一个覆盖的方法必须有相同的方法名、参数名和参数类型 答案:C 问题解析:对于在同一个访问区被声明的几个具有不同参数列的同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。覆盖是指派生类中对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖 成员函数被重载的特征如下: 1.相同的范围(同一个类中) 2.函数名字相同 3.参数不同 4.Virtual关键字可有可无 覆盖的特征如下 1.不同的范围(分别位于派生类与基类) 2.函数名字相同 3.参数相同 4.基类函数必须有virtual关键字
|