以下是一些代码说明:
abstract class parent
{
protected void longFunction()
{
//........
}
protected void longLongLongFunction()
{
//........
}
protected abstract void changeMe();
}
class child : parent
{
protected override void changeMe()
{
longFunction();
}
}
在我的特定情况下,我更自然地在抽象父类中声明所有可能的方法,然后子项只接收/调用它们需要的方法。因此,如果一个子类只调用父类中声明的一个5方法,那么生成的对象是否包含4个从未调用过的函数的代码?如果我在外部声明这些方法,我将不得不向它们传递许多参数,并且通过这种方法很简单,因为它们可以直接使用" protected"父类的字段。那么在上面的代码中,longLongLongFunction是否会在编译时被包含在子类的创建实例中,这使得最终的程序不必要地变大了?
我认为这个问题与this question不重复,因为有些孩子会调用别人不使用的方法。所以在某些时刻,这些方法将被调用,并且需要,但不是所有的孩子。我们假设10个孩子中只有5个会打电话给第二种方法。是否所有10个子实例都包含该方法只是因为它是在父语句中声明的?