C#面向对象3

 
一、抽象。
       抽象就是虚的东西,也可以说是不存在的东西。
       在C#抽象用关键字abstract修饰。用它修饰的类叫抽象类,修饰的方法叫抽象方法。
如:
       abstract class Person{          //抽象类
       ………
       public abstract void Work();               //抽象方法
}
在这里我们应注意:
1.         在一个类中如果有一个方法是抽象方法,那么这个类也必须定义为抽象类。
2.         在一个抽象类中可以没有抽象方法。
3.         抽象的方法不能有方法体(也就是后面那一对大括号)。
4.         在C#中实现抽象方法时也要用关键字override。
5.         抽象类不可以被实例化。
如:
     abstract class Person{     //抽象类
          ……..
         public abstract void Work();
         public abstract void Print();
         public abstract void Sing();
    }
Person person=new Person();              //这句是错误的
6.         子类继承一个抽象类,如果在其内部没有实现父类的所有抽象方法,那么这个子类也必须定义为抽象类。如:
     abstract class Person{
          ………
         public abstract void Work();
         public abstract void Print();
         public abstract void Sing();
     }
     abstract class Man:Person{
          public override void Work()
          {
               。。。。
          }  
          public override void Print()
          {
                    。。。。
          }
}
二、 接口。
可以说是用关键字interface定义的一种特殊的类。它里面全都是抽象方法。
在JAVA中我们实现接口用关键字implements而在C#中我们还用继承符号即:符号。
JAVA中类是单根继承,接口可以多重实现。在C#中我同样也是这样的概念。所以接口就是为了实现多根继承。
定义接口如:
          public interface Person{
              void Print();           //这里的public 为默认的,但不可以写出来
              void Work();
              void Sing();
     }
实现接口如:
     class Man:Person{
         public void Print()         //这里的public 是必须要有的。
         {
               。。。。
         }
         public void Work()
         {
               。。。。
         }
         public void Sing()
         {
              。。。。。
         }
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值