shangxijie

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
先看下面的程序:
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);后者是重载,是同一个类中的同名不同参数方法的概念。
posted on 2008-06-10 21:48  尚希杰  阅读(1413)  评论(0编辑  收藏  举报