我有一个关于面向对象编程的问题。如果子类中存在具有不同值的属性。它应该在超类中创建一个抽象访问器,然后在子类中覆盖它。或者在基类中创建一个受保护的实例变量,并在子类构造函数中分配默认值?
让我们看一下代码示例代码:
选择1:
class BaseClass {
public abstract int GetFoo();
}
class SubClass {
public int GetFoo() {
return -1;
}
}
选择2:
class BaseClass {
protected int _foo;
public int GetFoo() {
return _foo;
}
}
class SubClass {
public SubClass() {
_foo = -1;
}
}
或者有什么想法?