9-5C#接口和抽象类

    今天老师讲的是接口和抽象类。最后一节这里复习了数组..在接口就是用关键字interface,抽象类是abstract.今天老师讲的接口可以听得懂、就是抽象类这块还是有点模糊,不过经过下午思路的整理还是搞懂了。

接口:是抽像类的变体,在接口中,所有方法都是抽像的, 接口里没有方法体,接口不可以实例化。

关键字:  interface

结构:interface+名+{  类型+方法名+(参数) }    

Program类

class Program
    {
        static void Main(string[] args)
        {
            //类可以继承多个接口但只能继承一个父类。。。
            horse H = new horse("小马");
            ILandBound I = H;
            int legs = I.tui();//调用的 ILandBound 接口中的tui()方法;
            Console.WriteLine(legs);            
            legs = L.tui();
            Console.WriteLine(legs);
            Console.ReadKey();
        }
    }
}

ILandBound 接口中


interface ILandBound
    {
        int tui();
    }

horse 类中

class horse:Mammal,ILandBound,ILiangQi //当一个类继承父类和接口时,父类名在前,接口名在后。
    {
        public horse(string name) : base(name) { }//传name;

        int ILandBound.tui()   //当只继承一个接口时,要加Public 不是一个时 不能加public。
        {  
            return 4;           
        }
        int ILiangQi.tui()    //当该类继承两个或两个以上的接口时,方法名前需要加上所属接口的 接口名+.
        {
            return 2;
        }

ILiangQi接口中

interface ILiangQi
    {
        int tui();
    }

 

显示的结果就是4,2。

 

抽象类和抽象方法 

关键字:Abstract

 作用:   它用于要创建一个体现某些基本行为的类,并为该类声明方法

用法:

GrazingMammal 类

abstract class GrazingMammal:Mammal,IGrazable   // 抽象类  关键字 abstract
    {
        public GrazingMammal(string name) : base(name) { }

        public abstract void ChrewGrass();   //抽象方法 默认为虚方法所以可以不用virtual修饰就能使用override。

        //{
        //    Console.WriteLine("Chrewing Grass...");
        //}

 cow类

   class cow:GrazingMammal
    {
        public cow(string name) : base(name) { }
        public override void ChrewGrass()
        {  
            Console.WriteLine("反刍。。。");
        }
    }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值