问题描述
- java 代码转 c# 代码的疑问
-
//java code
class B extends A
{
public B()
{
//这里做一些赋值计算等操作,然后再调用父类构造函数
super();
}
}//c# code
class B : A
{
public B():base()
{
//怎么在base()执行前做一些操作
}
}
解决方案
放到基类中,子类中首先要执行父类的构造,或者在父类中写一个空方法,放到构造函数的最开始,然后子类去override这个方法,写具体的操作
解决方案二:
写在父类中呗,这个相当于调用父类的构造方法
解决方案三:
这两种方法会让父类被设计得莫名其妙 违背了开闭原则 扩展子类却要修改父类。有没有更好的办法?
解决方案四:
class A:C
{
public C()
{
//放这里面
}
}
时间: 2024-09-06 23:52:29