基类和派生类中的方法覆盖
2010-04-08 15:56
309 查看
1.如果重新定义基类中的方法,要确保新的方法和基类中的方法完全一样,除非返回类型是基类对象的引用或指针,可以修改为派生类的引用或者指针,这叫做返回类型协变,因为允许返回类型随类类型的变化而变化。
class A
{
public:
void func1() const;
A& funcA() const;
}
classB : public A
{
public:
void func1(int ) const; //会覆盖掉A类中的func1方法
B& funcA() const; //返回类型协变。
}
2.如果基类中的方法被重载了,那么派生类中则要全部重新定义基类中的方法。
class A
{
public:
void func1() const;
A& funcA() const;
}
classB : public A
{
public:
void func1(int ) const; //会覆盖掉A类中的func1方法
B& funcA() const; //返回类型协变。
}
2.如果基类中的方法被重载了,那么派生类中则要全部重新定义基类中的方法。
相关文章推荐
- 【protected权限】java浅复制、深复制中,为什么在派生类中覆盖基类的clone()方法,并声明为public
- [VB.NET]派生类用overloads关键字覆盖基类方法有什么意义?
- 派生类指针方法获取基类的函数
- 派生类的对象访问基类中被派生类覆盖或隐藏了的函数或变量
- 例4.6 当基类含有参数的构造函数,派生类构造函数的构造方法
- 覆盖基类中的公有方法需要用new
- 派生类遮掩基类方法的一些总结
- 关于如何在派生类的虚函数中调用被覆盖掉的同名基类的虚函数
- C++基类,派生类,同名覆盖原则
- 派生类方法隐藏基类方法
- 派生类中override基类的方法
- 关于如何在派生类的虚函数中调用被覆盖掉的同名基类的虚函数
- 上面俩题的小结-派生类访问基类私有成员的方法
- 对于 子类和基类中 方法的重写 override 和覆盖 new
- java程序练习:尝试创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将他向上转型到基类并调用这个方法。
- 派生类的对象访问基类中被派生类覆盖或隐藏了的函数或变量
- C#基础:多态:基类可以定义并实现虚(virtual)方法,派生类可以重写(override)这些方法
- 尝试创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将它向上转型到基类并调用这个方法。
- C#中接口通过基类或派生类对方法的调用
- 关于基类和派生类中虚拟方法的探讨