关于两组类的逻辑关系
1. A1 是 A的子类
2. B1 是 B的子类
3. B包含A的一个实例,作为自己的变量属性
4. B1 需要把A1作为自己的变量属性
问题是: 如何比较优雅的实现这样的一组关系,并保持设计的相对简单? --------------------编程问答--------------------
--------------------编程问答--------------------
Class B
{
protected A _Oa;
public A OA
{
get
{
return _Oa;
}
set
{
_Oa= value
}
}
}
class B1: B
{
private A1 _Oa1;
public A1 OA1
{
get
{
if(_Oa1==null)
{
_Oa1=Oa as A1;
}
return _Oa;
}
set
{
_Oa= value ;
_Oa1=value;
}
}
}
--------------------编程问答--------------------
class A {}
class A1: A{}
class B
{
public A a
{
get;set;
}
}
class B1 : B
{
public A1 a1
{
get;set;
}
}
abstract class A--------------------编程问答--------------------
{
}
abstract class B
{
protected A a;
public B(A a) { this.a = a; }
}
class A1 : A
{
}
class B1 : B
{
public B1(A1 a1):base(a1){}
}
//或者
abstract class A
{
}
abstract class B
{
private A a;
protected A _A
{
set
{
a = value;
}
get
{
return a;
}
}
}
class A1 : A
{
}
class B1 : B
{
}
class A {}
class A1: A{}
class B
{
public A a
{
get;set;
}
}
class B1 : B
{
public A1 a1
{
get;set;
}
}
补充:.NET技术 , C#