C#学习笔记之八:类

1.怎么声明一个类?

先由一个完整的类定义(但并不是真实的和必须的)来看类的组成元素:
class  MyClass
{
     //字段,用于存储所需要的数据,会自动初始化为0的等价表示
     private   int  a;
     public   static   string  d;     //只能通过类而不是类实例来引用
     //属性,用于为私有字段的读写构造一个安全的环境
     public   int  A
    {
        get     //get访问器,这块可以简写为:get;(没有其他逻辑时)
        {
             return  a;
        }
        set      //set访问器,value为隐式参数,这块可以简写成:set;(没有其他逻辑时)    
        {
            a  =  value;
        }
    }
     //索引器,用于封装类的内部集合或数组,名字只能是this
     private   string [ ] x  =   new   string [ 5 ];
     public   string   this [ int  index]
    {
        get
        {
             return  x[index];
        }
        set
        {
            x[index]  =  value;
        }
    }
    
     //构造函数
     public  MyClass()
    {
        a  =   1 ;
    }    
     //带参数的构造函数
     public  MyClass( int  _param)
    {
        A  =  _param;
    }
     //析构函数
     ~ MyClass()
    {
         //Do Something
    }
}

2.实例化一个类?

MyClass mc  =   new  MyClass();         //a = 0;
MyClass mc  =   new  MyClass( 5 );       //a = 5;

3.怎样继承?

class  MySubClass  :  MyClass
{
     //若想重新定义与基类相同的成员,可以使用new来隐藏基类成员
     //若想访问基类的成员,可以使用base.语法来引用
     public   int  y;
     //指定基类构造函数
     public  MySubClass( int  _param1,  int  _param2)  :   base (_param1)
    {
        y  =  _param2;
    }
}
(1)使用sealed关键字定义的类不能被继承。
(2)暂时不看分部类,静态类,包括只能在静态类中才能使用的扩展方法。
(3)派生类型的向上转型会使得派生类中的成员变得不可见。

4.实现多态

(1)编译时多态:通过静态绑定实现,要求在同一个类中,方法名相同,方法签名不同,就是重载方法。
(2)运行时多态:通过覆写虚方法实现的,虚方法使用关键字virtual标识。
class  Person
{
     public   virtual   void  Speak()
    {
         //定义虚函数,抽象方法不能有函数体,抽象类即使用abstract标识的类
    }
}

class  Male  :  Person
{
     public   override   void  Speak()
    {
         //实现覆写,如果不想让这个类的派生类继续覆写该虚函数,就使用sealed关键字密封方法
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值