我们可以在父类和子类中使用相同的抽象方法吗

时间:2019-06-02 16:10:28

标签: oop inheritance abstract

我有一个问题。

我有两个抽象类A和B.B继承了A,所以我们现在可以拥有与类B中的类A中相同的抽象方法,而无需实现(无覆盖)。

条件:

1。在两个抽象类中应该具有相同的特征和签名
2.我们将继承B到C类,并在C类中实现。
3.没有方法隐藏

问候 克里希纳

public abstract class A
{
  public void info();
}

public abstract class B:A 
{
  public void info();
}

public abstract class C:B
{
  public void info()
  {
    // code
  }
}

1 个答案:

答案 0 :(得分:1)

假设您的问题在C#代码中,则可以进行以下操作:-

public abstract class A
{
  public abstract void info();
}

public abstract class B:A 
{
  public override abstract void info();
}

public abstract class C:B
{
  public override void info()
  {
    // code
  }
}

但是,如果您从类B的override中删除了info关键字,则会导致编译时错误。

此外,您根本无法在B中完全定义该方法并在C中覆盖该方法,因为C的父级是B,而B的父级是A,因此C会自动访问A中的所有内容,除非它是私有的