C#抽象类总结

C#抽象类总结

1.         解释什么是抽象类?

抽象类是包含抽象方法的类。那么什么又是抽象方法呢?抽象方法是没有方法内容的,只有一个方法名和参数列表的方法。并以;结尾。为了标注他的与众不同,在他的返回类型前加abstract。并在class前加abstract

简言之,由abstract修饰的方法和类就是抽象的方法和类。

2.         抽象类的特点

  抽象类只能做父类

  抽象类不能实例化,既不能用new来产生属于抽象类的对象

  抽象类中除了抽象方法与普通方法不一样以外,其他的部分和普通类一样。即抽象类是普通类的特例,他特殊只是有抽象方法。所以它里面可以有字段,属性,普通方法。

3.         抽象方法的特点

  抽象方法是没有方法内容的,只有一个方法名和参数列表的方法。并以;结尾。

  在方法的返回类型前加abstract

  抽象方法的内容由他的继承类根据继承类自身情况去写。重写这个方法时把abstract替换成override

注意:②③也是抽象属性的定义和实现的方法

 

 

例如:

      abstract   class  Class1  //定义抽象类

    {  protected string name;

 protected abstract string Name {  //定义抽象属性

            get;  }

        protected int age;

        protected Class1() {

            name = "a";

            age = 4;  }

         protected  abstract void A();  //定义抽象方法

    }

   class Class2:Class1 {

protected override string Nam {  //实现抽象属性

            get { return name; }

        } //实现方法时他的修饰符只能是范围比父类大,或是相同

       protected  override void A() {  //实现抽象方法

            Console.WriteLine("aaaaaaaaaaaa"); }

          static void Main() {

      Class2 c = new Class2(); //正确,继承类可以定义自己的对象

           Class1 c1=new Class1(); //错误,抽象类不能定义自己的对象

            Console.WriteLine(c.Name + "/n" + c.age);

                c.A(); } }

4.抽象类里的普通方法如果也想在子类中重写,有两种方法:

①在父类普通方法的返回类型前写virtual,这就告诉系统父类这个方法是虚的方法,在子类中重写该方法时,在方法的返回类型前可以什么也不写,可以写new,也可以写override,然后子类对象调用的方法就是在子类中重写的方法。 

②在父类普通方法的返回类型前什么都不写,在子类中重写该方法时,在方法的返回类型前可以什么也不写,可以写new 。然后子类对象调用的方法就是在子类中重写的方法。 

例如:

Abstract Class C

{

      Protected abstract void A();

      Protected void B(){

           Console.WriteLine("bbbbb");

}

}

Class Class1:C

{

      Protected void A() {

      Console.WriteLine("aaaaaaa");  }

      //Protected new void B(){ //正确}

      //Protected override void B(){//正确}

      Protected void B(){ //正确

 

      Console.WriteLine("cccccccccccccc");

}

Static void Main() {

      Class1 c1=new Class();

      c.A();                         结果是:aaaaaaa

                                        cccccccccccccc

      c.B();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值