读书人

新手关于私有变量继承的有关问题

发布时间: 2012-07-18 12:05:40 作者: rapoo

新手求助,关于私有变量继承的问题

class Quadrilateral : Shape
{
private CColor color;
//定义四边形的四个顶点
private Point point1, point2, point3, point4;

public CColor Color
{
get
{
return color;
}
set
{
color = value;
}
}

public Point Point1
{
get
{
return point1;
}
set
{
point1 = value;
}
}
public Point Point2
{
get
{
return point2;
}
set
{
point2 = value;
}
}
public Point Point3
{
get
{
return point3;
}
set
{
point3 = value;
}
}
public Point Point4
{
get
{
return point4;
}
set
{
point4 = value;
}
}

public Quadrilateral()
{
}
public Quadrilateral(Point p1, Point p2, Point p3, Point p4)
{
point1 = p1;
point2 = p2;
point3 = p3;
point4 = p4;
}


class Square : Quadrilateral
{
public Square()
{
}
public Square(Point p1, Point p2, Point p3, Point p4)
: base(p1, p2, p3, p4)
{
}

在四边形类中,那四个点不都是私有的吗,好像是继承到了正方形中(不是私有变量不能继承吗),为什么不用重新定义,好像是继承到了



[解决办法]
base(p1, p2, p3, p4)

你这问题和私有变量一点关系都没有,是调用基类构造函数...去看MSDN...
[解决办法]
继承的是公共属性而不是私有变量
[解决办法]
继承概念没搞懂啊 继承的是公共属性而不是私有变量
[解决办法]
汗,楼主是新手,大家不用太严厉. 告知就可以了.
[解决办法]
鼓励新手!
不懂就问!
[解决办法]
派生类实例都会包含一个完整的基类实例,无论字段私有与否,就像一个大盒子(派生类实例)套着小盒子(基类实例),基类私有的内容确实也到了派生类身体里,只是派生类看不见,但派生类可以通过基类公开的方法来间接访问之,你这个例子就是派生类通过基类公开的构造Quadrilateral(Point p1, Point p2, Point p3, Point p4)来访问基类的私有字段
[解决办法]
呵呵,私有变量是能在类的内部被调用,但是它是一直都存在的,通过类内部的方法(构造函数)去访问一个私有变量,这样是没有问题的。属性的封装也就是这么来的。

读书人网 >C#

热点推荐