类对象抽象类1

接口调用//接口不能实例化,但可以用继承的类实例化访问

public interface Itest

{

     void sayHello();

}

class myItest:Itest

{

    public void sayHello()

    {

             Console.WriteLine("I am Itest");

    }

}

myItest one = new myItest;

Itest   InterfaceObject = one as Itest;

 InterfaceObject.sayHello();//此处调用的是myItest的sayHello函数


抽象类  //虚拟成员和抽象函数不能是私有的private.只能是public 和protected

public abstract class Aclasstest

{

      public void sayHello();

      protected void sayHello1();

       //private void sayHello2();

}

class AclassTest:Aclasstest

{

  public override  void sayHello()

   Console.WriteLine("I am public");

 protected  override  void sayHello1()

Console.WriteLine("I am protected");

}

// public void sayHello2()

//{ 

//}

}

抽象类在继承类中的实现叫override重载。接口在继承类中的实现叫做函数的实现(换句话说,抽象类函数的实现是继承类函数的重载,接口函数的实现就是继承类的函数的方法体)

             即:abstract不允许有方法体,必须被子类override重载。貌似抽象函数只能在抽象类中申明。

虚拟方法visutal,必须申明实现,必须有主体函数。所以抽象类中不可能有虚拟函数。虚拟函数可以被继承类override,不过其它函数(public和protected)何尝不是也可以override,我去。

最后,override相对在abstract的继承类中用的比较多然后是在virsual中还是用的比较多



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值