C#的继承问题和属性的使用

先看下面的程序:
Class Parent
{
    public int x;
    ......
}
Class Child:Parent
{
    public int y;
    ......
}
如果采用这样的类的实例化方法: Parent a=New Child()对于程序来说a只是Parent类的一个对象,虽然它是用Child类来实例化的,所以a.y的调用方法会报错,解决方法就是:Child b=(Child)a 这样就可以利用类型转化把a赋给一个Child对象的引用b,再用b.y就没有问题了。其他诸如继承中讲到的基本的问题就不说了。
如果将程序中类Child的字段y的修饰符变为private,上面的调用就会出错了,因为对于private来说是只允许类中的调用的。所以在这里引入一个解决方法,属性。程序如下:
Class Parent
{
    public int x;
    ......
}
Class Child:Parent
{
    private int y;
    public int Y
    {
        get{return this.y;}
        set
        {
            this.y=value;
        }
    }
    ......
}
get、set、value在这里都是关键字,再次声明类的对象以后,例如:
Child c=New Child();
c.Y=100;(这里就等于将100付给了Child中的小y)
这样就可以实现外部对类内部成员变量的调用,使用属性的最大的好处并不是这里,它可以在其中加入方法,或者可以说它本身就是一个方法,这个方法是对内部变量的任意操作,结合方法可以收到很多意想不到的效果。
最后再将一下override & overload 这两个概念,前者是复写,存在于父类和子类之间,是对父类中原有方法的改写(父类中只有虚方法和抽象方法可以被override);后者是重载,是同一个类中的同名不同参数方法的概念。

转载于:https://www.cnblogs.com/shangxijie/archive/2008/06/10/1216978.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值